[delphi] Form.show и фокус
SetFocus пользуй
кстати почему может следующее происходить :
на все компоненты на форме и на саму форму сделан обработчик FormKeyDown
в котором при нажатии F4 выполняется следующая строка ComboBox1.SetFocus.
Дебагером смотрел,до строки доходит,а фокус не устанавливается.:(
где я туплю?
у всех на KeyDown стоит обработчик:
Всё работает.
procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F4 then ComboBox1.SetFocus;
end;
D7, Win2003Server
Что занчит форма юзалась? Show/Hide? Activate/Close?
Сначала фокус на Боксе,потом жму F3
procedure TLoadingForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift=[ssAlt]) and
Key=Ord('x'or(Key=Ord('X'or(Key=Ord('÷'or(Key=Ord('×' then
LoadingExitButton.Click;
case key of
VK_F3 : LoadingFilterButton.Click;
VK_F4 : LoadingBox.SetFocus;
end;
end;
открывается другая форма,ета не скрывается,а потом последняя скрывается,и вроде делается Form.show
сколько не жми F4 управление Боксу не передается,притом кнопки нормально пашут
Поставь Form.KeyPreview в True
ты не понимаешь,keydown срабатывает,код кнопки правилный передается,просто фокус не устанавливается почему то
LoadingBox - это точно комбобокс?
У меня всё работает.
На форме два мемо, кнопка, радиокнопка, чекбокс, комбобокс
у формы стоит .KeyPreview в True, обработчик такой же, как указан выше.
при нажатии F4 происходит перенос фокуса на комбобокс.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_F3 : Button1.Click;
VK_F4 : ComboBox1.SetFocus;
end;
end;
procedure TForm1.ComboBox1Enter(Sender: TObject);
begin
Memo1.Lines.Add('Òèïà âîøëè');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Click!');
end;
Для отладки сделай обработчик OnEnter у комбобокса - может, поможет.
if not LoadingBox.Focused then
<какая либо не значащая строка>
так вот,проверял в дебагере,он туда не заходил,на ету строку,несмотря на то,что в case строчка LoadingBox.SetFocus прорабатывалась.
И еще одня интересная деталь.
Я скрывал форму на которой комбобокс а потом снова показывал и фокус оказывался на Боксе.У меня такое ощущения,что фокус то на Бокс переводится,но почему то не работает =)
хотя хз,мож он где по дороге застревает
маза ты где-то перемудрил с фокусами и твой фокус перескакивает по какому-нть событию в другое место..
Кроме форм шоу а потом хайд ничего не делается
и строка,где фокус на бокс ставится выполняется,а в следующей строке на боксе уже нет фокуса
Оставить комментарий
milochka11
Если в делфях вызвать Form.showпричем на форме есть некоторые компоненты,фокус на чем будет,на форме или на какой ни будь компоненте?