Forum Replies Created
-
AuthorPosts
-
YurikParticipant
Хммм… да, и правда. Я сейчас за другим компом, скачал редактор скинов — действительно, заголовок как заголовок. Похоже, меня проглючило. 🙂 Прошу прощения. Но еще на всякий случай проверю на своем компе и отпишусь.
YurikParticipantВообще, на мой взгляд, наиболее интуитивно понятным является именно генерация исключения. По правде сказать, не найдя функции проверки скина на валидность, я был настолько уверен, что движок выдаст исключение, что даже соответствующий код написал под эту ситуацию. Но оказалось, что оно обработало ошибку “внутри”, и я ничего не смог зацепить.
Функция проверки скина на валидность должна быть. Передаем ей, к примеру, TStream, получаем True или False. Эту же функцию без входного параметра TStream можно вставить в SkinManager.InternalSkins[] (пишу по памяти, прошу прощения, если немного неправильно). Если в PackedData находятся некорректные данные, то при попытке активировать данный скин давать exception (в том месте, где сейчас простой MessageBox выводится).
Ну вот, у меня такие мысли.
YurikParticipantМы с Support-ом решили эту проблему по ICQ.
Возможно, решение будет кому-то полезно. Нужно перехватить событие SM_ALPHACMD с параметром AC_GETBG и отдать картинку заднего фона таким образом:
CODEprocedure 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; -
AuthorPosts