Koder

Forum Replies Created

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • in reply to: MAskWidthTop #40077
    Koder
    Participant

    В 6.41 ошибка исправлена.

    Koder
    Participant

    В 6.41 ошибка исправлена.

    in reply to: 6.40 #40075
    Koder
    Participant

    Демку сделал быстро благодаря наводке JohnBank, и выяснил, что баг связан с темой Топаз. В 6.41 этот баг тоже есть.
    [attachment=3422:BehindForm.zip]

    in reply to: 6.40 #40039
    Koder
    Participant

    QUOTE (Support @ Jul 23 2009, 07:15 AM)
    А демку сделать нереально?

    Навскидку – нереально. Но баг есть, и он в скинировании 6.40 Попробую на выходных локализовать, но не обещаю.

    in reply to: MAskWidthTop #40038
    Koder
    Participant

    QUOTE (Support @ Jul 23 2009, 07:12 AM)
    Некоторые изменения будут в ближайшем релизе.
    Если будет демка, то ошибка будет исправлена с гарантией <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]

    Koder
    Participant

    QUOTE (Alter @ Jul 22 2009, 02:35 PM)
    P.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;

    Koder
    Participant

    Вот так сразу отрисовывает нормально, скрытие формы практически незаметно. Без 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” />

    Koder
    Participant

    QUOTE (Alter @ Jul 22 2009, 11:18 AM)
    Версия 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

    CODE
    nStyle := 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);

    in reply to: 6.40 #39989
    Koder
    Participant

    При наведении. В форме2 есть тулбар, при наведении мыши на кнопки этого тулбара показывается главная форма.
    Если в форме2 открыть модальную форму(Params.WndParent := форма2.Handle), главная форма при этом устанавливается в Enabled, то при наведении мыши на кнопку модальной формы фокусируется главная форма.

    В версии 6.23 этого не было.

    in reply to: Динамический sListBox #39988
    Koder
    Participant

    Анимация отключена, скинпровайдер создается динамически, стопроцентно динамический пустой листбокс был с неправильным цветом шрифта, я смотрел Font.Color.
    SpinEdits в 6.40 гляну, будут артефакты сделаю демку.

    in reply to: MAskWidthTop #39987
    Koder
    Participant

    Во всех скинах такое, иногда при загрузке программы. Баг связан с расположением контролов, кнопка лежит на TVirtualDrawTree, если до первого показа установить this_button.visible := false то ошибок нет.

    in reply to: Динамический sListBox #39934
    Koder
    Participant

    По теме:
    Скинменеджер, созданный в рантайме скинирует только родные контролы. Значит, тоже к Loaded привязан.

    Еще хочу спросить: не планируете поправить TsSpinEdit? Так как при отключенных скинах стрелки плохо отрисовываются.

    in reply to: Динамический sListBox #39931
    Koder
    Participant

    Решение:

    CODE
    if 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 всех компонентов этот код, динамические контролы хорошая штука, тем более на английском форуме люди тоже обратили внимание на эту проблему.

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