![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnKeyDown при динамическом TPageControl [D2005, XP]
rhammer © (2008-12-10 15:05:00)Есть форма, на ней создается динамически PageControl. Кидаю событие OnKeyDown на форму и ничего не происходит при нажатии клавиш, присваиваю в ходе создания компонента обработчик событий на Form1OnKeyDown - также ничего не происходит. В интернете ничего не накопал - прошу помощи.
procedure TTest.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
ShowMessage(IntToStr(Key));
end;
procedure TTest.FormShow(Sender: TObject);
var
T: TTabSheet;
P: TPageControl;
begin
P := TPageControl.Create(application);
with P do
begin
Parent := Panel1;
Align := alClient;
OnKeyDown := FormKeyDown;
end;
T := TTabSheet.Create(P);
with T do
begin
Visible := True;
Name:='Tab1';
Caption := 'Страница1';
PageControl := P;
end;
end;
Rhammer (2008-12-10 16:18:00) [1]Спасибо, проблема решена
qqq (2008-12-10 16:12:00) [2]
> Насчет фокуса - поидее изначально он на форме
чего вдруг?
KeyPreview поставь
Rhammer (2008-12-10 16:11:00) [3]Спасибо, изменил на Self.
Насчет фокуса - поидее изначально он на форме, почему же тогда не срабатывает TTest.FormKeyDown?
clickmaker (2008-12-10 15:56:00) [4]по идее, клавиатурные события отправляются окну, имеющему фокус ввода.
Значит пейджконтрол не в фокусе.
И почему владелец у него application, а не форма?