Конференция "Основная" » TTrackBar без фокуса.
 
  • Kolan © (05.04.08 16:34) [0]
    Понядобилось избавится от фокуса у сабжа. Нашел на королевстве пример:

     TNoFocusTrackBar = class(TTrackBar)
     private
       { Private declarations }
     protected
       { Protected declarations }
       procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
     public
       { Public declarations }
       function CanFocus: Boolean; override;  
     published
       { Published declarations }
     end;

    function TNoFocusTrackBar.CanFocus: Boolean;
    begin
     Result := False;
    end;

    procedure TNoFocusTrackBar.WMSetFocus(var Message: TWMSetFocus);
    begin
     Message.Result := 0;
     SendMessage(Message.FocusedWnd, WM_KILLFOCUS, 0, 0);
    end;



    К сожалению работает не всегда. Например, если создать форму, показать её — то фокуса нет. Если форму скрыть и снова показать, то он появляется.
    Так же он опявляется при изменении цвета формы например.

    Вопросы:
    1. Почему не всегда работает такой вариант?
    2. Как реализовать TTrackBar без рамки воокруг?
  • Игорь Шевченко © (07.04.08 09:54) [1]

    > 1. Почему не всегда работает такой вариант?


    Потому что он неверный


    > 2. Как реализовать TTrackBar без рамки воокруг?


    Если TrackBar поддерживает рисование, то в момент рисования.
    Есди не поддерживает, скачать с http://www.torry.net Trackbar без рамки фокуса.
 
Конференция "Основная" » TTrackBar без фокуса.
Есть новые Нет новых   [134484   +49][b:0][p:0.001]