Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
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-подсветка кода
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-подсветка кода
begin
GetParentForm(AControl).ActiveControl := nil;
AControl.TabStop := False;
AControl.ControlState := [csFocusing]
end;Syhi-подсветка кода
Передовать фокус контролу всетаки можно (SetFocus), но визуально это никак не отображается.
