Forum Replies Created
-
AuthorPosts
-
KoderParticipant
В 6.41 ошибка исправлена.
KoderParticipantВ 6.41 ошибка исправлена.
KoderParticipantДемку сделал быстро благодаря наводке JohnBank, и выяснил, что баг связан с темой Топаз. В 6.41 этот баг тоже есть.
[attachment=3422:BehindForm.zip]KoderParticipantKoderParticipantНекоторые изменения будут в ближайшем релизе.
Если будет демка, то ошибка будет исправлена с гарантией <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />Сделал демку, при нажатии любой клавиши меняется скин, скины расположены в C:Skins
Кнопка не отрисовывается после смены скина. Когда делал демку, выяснилось что баг связан с созданием скинменеджера и скинпровайдера в рантайме. Вообще в рантайме баги еще есть, несерьезные, но неприятные для пользователя, проверю и напишу скоро. Надо бы создание в рантайме уровнять с дизайнтаймом <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />[attachment=3418:EDivByZero.zip]
KoderParticipantP.S: Что-то не найду про это -> SetRedrawFalse(Handle); SetRedrawTrue(Handle);
Дельфи не знает этого, или в Uses чего-то не хватает?Это мои макросы
interface
uses Windows, Messages;
procedure RedrawWindow(Handle: HWND);
begin
Windows.RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);
end;procedure SetRedrawTrue(Handle: HWND);
begin
SendMessage(Handle, WM_SETREDRAW, 1, 0);
RedrawWindow(Handle);
end;procedure SetRedrawFalse(Handle: HWND);
begin
SendMessage(Handle, WM_SETREDRAW, 0, 0);
end;KoderParticipantВот так сразу отрисовывает нормально, скрытие формы практически незаметно. Без WM_SETREDRAW тоже работает, но некрасиво.
SetWindowLong(Handle, GWL_STYLE, nStyle and not WS_BORDER);
SetWindowPos(Handle, HWND_TOP, 0, 0, Screen.Width, Screen.Height, SWP_FRAMECHANGED or SWP_SHOWWINDOW);
SetRedrawFalse(Handle);
Visible := false;
Visible := true;
SetRedrawTrue(Handle);Остановлюсь на этом варианте, но фиксить надо <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />
KoderParticipantВерсия AC: 6.40
Версия Delphi: 7При максимизации заскиненого окна, кнопки и верх окна как бы обрезаются(показано красными стрелками). И какой-то баг с кнопками заголовка(белые поски под ними), отмеченно розовыми стрелками.
Есть такое. Вот как должно быть:
[attachment=3415:maximize_norm.PNG]А вот так показывается в первый раз:
[attachment=3416:maximize_bug.PNG]После переключения на другой процесс и обратно отрисовывается нормально, надо что-то подкрутить <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” /> через BorderStyle := bsNone; работает плохо, полформы не отрисовывается, хотя он мне не нужен, так как использую API. Хотелось бы перехвата не только bsNone, но и SetWindowLong(Handle, GWL_STYLE, nStyle and (not WS_BORDER));
6.23 stable
CODEnStyle := GetWindowLong(Handle, GWL_STYLE);
SetWindowLong(Handle, GWL_STYLE, nStyle and (not WS_BORDER));
SetWindowPos(Handle, HWND_TOP, 0, 0, Screen.Width, Screen.Height, SWP_FRAMECHANGED or SWP_SHOWWINDOW);KoderParticipantПри наведении. В форме2 есть тулбар, при наведении мыши на кнопки этого тулбара показывается главная форма.
Если в форме2 открыть модальную форму(Params.WndParent := форма2.Handle), главная форма при этом устанавливается в Enabled, то при наведении мыши на кнопку модальной формы фокусируется главная форма.В версии 6.23 этого не было.
KoderParticipantАнимация отключена, скинпровайдер создается динамически, стопроцентно динамический пустой листбокс был с неправильным цветом шрифта, я смотрел Font.Color.
SpinEdits в 6.40 гляну, будут артефакты сделаю демку.KoderParticipantВо всех скинах такое, иногда при загрузке программы. Баг связан с расположением контролов, кнопка лежит на TVirtualDrawTree, если до первого показа установить this_button.visible := false то ошибок нет.
KoderParticipantПо теме:
Скинменеджер, созданный в рантайме скинирует только родные контролы. Значит, тоже к Loaded привязан.Еще хочу спросить: не планируете поправить TsSpinEdit? Так как при отключенных скинах стрелки плохо отрисовываются.
KoderParticipantРешение:
CODEif SkinData.Skinned then begin
if not SkinData.CustomColor then Color := SkinData.SkinManager.gd[SkinData.SkinIndex].Color;
if not SkinData.CustomFont then Font.Color := SkinData.SkinManager.gd[SkinData.SkinIndex].FontColor[1];
end;Надо убрать из Loaded всех компонентов этот код, динамические контролы хорошая штука, тем более на английском форуме люди тоже обратили внимание на эту проблему.
-
AuthorPosts