Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TTrackBar без фокуса.


Kolan ©   (2008-04-05 16:34:00) 

Понядобилось избавится от фокуса у сабжа. Нашел на королевстве пример:

 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 без рамки воокруг?


Игорь Шевченко   (2008-04-07 09:54:00) [1]


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


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


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


Если TrackBar поддерживает рисование, то в момент рисования.
Есди не поддерживает, скачать с http://www.torry.netTrackbar без рамки фокуса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо