Yurik

Forum Replies Created

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • in reply to: Высота заголовка формы. #38654
    Yurik
    Participant

    Хммм… да, и правда. Я сейчас за другим компом, скачал редактор скинов — действительно, заголовок как заголовок. Похоже, меня проглючило. 🙂 Прошу прощения. Но еще на всякий случай проверю на своем компе и отпишусь.

    Yurik
    Participant

    Вообще, на мой взгляд, наиболее интуитивно понятным является именно генерация исключения. По правде сказать, не найдя функции проверки скина на валидность, я был настолько уверен, что движок выдаст исключение, что даже соответствующий код написал под эту ситуацию. Но оказалось, что оно обработало ошибку “внутри”, и я ничего не смог зацепить.

    Функция проверки скина на валидность должна быть. Передаем ей, к примеру, TStream, получаем True или False. Эту же функцию без входного параметра TStream можно вставить в SkinManager.InternalSkins[] (пишу по памяти, прошу прощения, если немного неправильно). Если в PackedData находятся некорректные данные, то при попытке активировать данный скин давать exception (в том месте, где сейчас простой MessageBox выводится).

    Ну вот, у меня такие мысли.

    Yurik
    Participant

    Мы с Support-ом решили эту проблему по ICQ.

    Возможно, решение будет кому-то полезно. Нужно перехватить событие SM_ALPHACMD с параметром AC_GETBG и отдать картинку заднего фона таким образом:

    CODE
    procedure TGraphicPanel.WndProc(var Message: TMessage);
    begin
      if (Message.Msg = SM_ALPHACMD) and (Message.WParamHi = AC_GETBG) then
        with PacBGInfo(Message.LParam)^ do
        begin
          Bmp := FBgBitmap;
          BgType := btCache;
          Offset := Point(0, 0);
        end
      else inherited WndProc(Message);
    end;

Viewing 3 posts - 1 through 3 (of 3 total)