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

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

OnClick для Edit’а, если Enabled := False [D6, 95/98]


Dr. Genius ©   (2006-09-26 09:42:00) 

Здравствуйте!

Событие OnClick для Edit’а не срабатывает, если св-во Enabled Edit’а установлено в False. Можно ли это исправить?


ЮЮ   (2006-09-26 10:10:00) [1]

Можно. Обработав OnClick parenta.

type
 TControlAccess = class(TControl);

procedure TForm1.Edit1Click(Sender: TObject);
begin
 TEdit(Sender).Tag := TEdit(Sender).Tag + 1;
 Caption := 'OnClick ' + IntToStr(TEdit(Sender).Tag);
end;

procedure TForm1.FormClick(Sender: TObject);
var
 c: TControl;
 p: TPoint;
begin
 p := Mouse.CursorPos;
 p := ScreenToClient(p);
 c := ControlAtPos(p, true, true);
 if (c <> nil) then
 if not c.Enabled and Assigned(TControlAccess(c).OnClick) then
   TControlAccess(c).Click;
end;

Вопрос, зачем вообще у TEdita обрабатывать OnClick, пусть даже и у доступного


Megabyte   (2006-09-26 09:46:00) [2]

А зачем?


Сергей М.   (2006-09-26 09:46:00) [3]


> Можно ли это исправить?


Нельзя.
А зачем вообще это "исправлять" ?
Это же абсолютно нормальная логика - "запрещенный" контрол не должен и не может получить фокус ввода..


Наверх

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