![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> Можно ли это исправить?
Нельзя.
А зачем вообще это "исправлять" ?
Это же абсолютно нормальная логика - "запрещенный" контрол не должен и не может получить фокус ввода..