26th
Фев

Как програмно снять выделение с кнопки?

Posted by Chas under Топик-обзор

Sibedir:

Можно это сделать и с TWinControl.
На сколько я понял, кроме диактивации контрола (стяли жирную рамочку) нужно еще снять фокус (стяли пунктирную рамочку).
Короче как-то так

procedure KillFocus1 (AControl: TWinControl);
begin
  SendMessage (AControl.Handle, WM_KILLFOCUS, 0, 0);
  SendMessage (AControl.Handle, CM_FOCUSCHANGED, 0, 0);
  AControl.TabStop := False;
  AControl.ControlState := AControl.ControlState + [csFocusing];
end;Syhi-подсветка кода

или так

procedure KillFocus2 (AControl: TWinControl);
begin
  GetParentForm(AControl).ActiveControl := nil;
  AControl.TabStop := False;
  AControl.ControlState := [csFocusing]
end;Syhi-подсветка кода

Передовать фокус контролу всетаки можно (SetFocus), но визуально это никак не отображается.

тема на форуме

Похожие статьи

Теги: |