Форум: "Начинающим";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];
ВнизCombobox и Escape Найти похожие ветки
← →
Sw (2009-10-27 08:59) [0]Здравствуйте, помогите, пожалуйста, разобраться.
procedure Tfm.CmbBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Sender is TComboBox then
(Sender as TComboBox).DroppedDown:=True;
end;
procedure Tfm.CmbBoxRecipientCloseUp(Sender: TObject);
begin
if CmbBoxRecipient.ItemIndex=-1 then Exit;
............
иначе заполняется другой комбобох
Если я работаю мышью, открываю комбобокс, выпадает список, ничего из списка не выбрано (перемещаю мышь по списку, но не кликаю)...нажимаю Esc, комбобокс закрывается.
Если с клавиатуры открываю список, то при закрытии происходит обработка CloseUp.
на KeyPress прописываю if key=#27 then CmbBoxRecipient.ItemIndex:=-1; но сначала выполняется CloseUp, а потом KeyPress.
Как сделать, чтобы при нажатии на Esc не выполнялся CloseUp?
← →
TDelphi © (2009-10-27 10:56) [1]Например так :
...
private
{ Private declarations }
procedure MyCloseUp (Sender: TObject);
...
procedure Tfm.MyCloseUp (Sender: TObject);
begin
if GetAsyncKeyState (VK_ESCAPE) <> 0 then
inherited
else
ShowMessage ("Нажали ESC");
end;
...
procedure Tfm.FormCreate(Sender: TObject);
begin
fm.CmbBox.OnCloseUp := MyCloseUp;
end;
← →
Leonid Troyanovsky © (2009-10-27 11:11) [2]
> TDelphi © (27.10.09 10:56) [1]
> inherited
Это, видимо, из другой оперы.
--
Regards, LVT.
← →
TDelphi © (2009-10-27 11:16) [3]To : Leonid Troyanovsky ©
>> inherited
>Это, видимо, из другой оперы.
Ага, но как пример сойдёт :)
← →
Leonid Troyanovsky © (2009-10-27 11:47) [4]
> TDelphi © (27.10.09 11:16) [3]
> Ага, но как пример сойдёт :)
Не, как пример не годится, бо реакция на Esc никак не меняется.
Хотя, я так и не сумел понять, для чего оное понадобилось.
--
Regards, LVT.
← →
TDelphi © (2009-10-27 12:59) [5]Imho, так должно отработать :
procedure Tfm.MyCloseUp (Sender: TObject);
begin
if GetAsyncKeyState (VK_ESCAPE) = 0 then begin
// Выполняется если нажали педаль "ESC "
end;
end;
Можно и не назначать свой обработчик...
← →
TDelphi © (2009-10-27 13:00) [6]Тьфу... ты ... :) Опечатался
if GetAsyncKeyState (VK_ESCAPE) = 0 then begin
// Выполняется если педаль "ESC" - не нажимали
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c