Хочется сделать чтобы при нажатии опрделенной клавиши VK_DOWN, например, открвывался некий комбобокс, фокус переходил бы к нему и выбирался первый элемент из списка.
Здравствуйте, chia, Вы писали:
C>Хочется сделать чтобы при нажатии опрделенной клавиши VK_DOWN, например, открвывался некий комбобокс, фокус переходил бы к нему и выбирался первый элемент из списка.
C>Заранее спасибо.
А если поменять последовательность: фокус переходил бы к нему, выбирался первый элемент из списка — сам он после этого не откроется(и надо ли)
Здравствуйте, chia, Вы писали:
C>нет, не откроется, а просто выберется. C>Хотя может быть он и открывается, но делает это очень быстро и тут же закрывается
поставь AutoDrop (или AutoDropDown???) — точно название свойства не помню...
Enigma — Black Moon Dance (Metamorphosis)
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Hacker_Delphi, Вы писали:
H_D>Здравствуйте, chia, Вы писали:
C>>нет, не откроется, а просто выберется. C>>Хотя может быть он и открывается, но делает это очень быстро и тут же закрывается H_D>поставь AutoDrop (или AutoDropDown???) — точно название свойства не помню...
нет такого (
у dbcombobox'a был метод dropdown, который делал то что мне надо.
у обчного (TCombobox) есть св-во DroppedDown, которое можно менять,
тогда действительно он выпадает, но тут же закрывается, поскольку фокус теряется.
как этого избежать?
Я же хотел сделать след-ее. под FileNameEdit (из RXlib) положил Combobox, чтобы при нажатии пользователем VK_Down выпадал список с историей, а FileNameEdit временно скрывался. В таком случае список выпадет и тут же закроется.
Здравствуйте, chia, Вы писали:
C>Я же хотел сделать след-ее. под FileNameEdit (из RXlib) положил Combobox, чтобы при нажатии пользователем VK_Down выпадал список с историей, а FileNameEdit временно скрывался. В таком случае список выпадет и тут же закроется.
Сделал тестовый проект — бросил на форму TEdit (у меня нет RxLib), под ним спрятал TComboBox. Вроде ничего там не закрывается. Вот фрагмент кода:
procedure OpenComboBox(AComboBox: TComboBox);
begin
with AComboBox do
begin
BringToFront;
SetFocus;
ItemIndex := 0;
DroppedDown := true;
end;
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_DOWN) and (ssAlt in Shift) then
OpenComboBox(ComboBox1);
end;
procedure TForm1.ComboBox1CloseUp(Sender: TObject);
begin
ComboBox1.SendToBack;
with Edit1 do
begin
Text := ComboBox1.Text;
SetFocus;
end;
end;
C>Я же хотел сделать след-ее. под FileNameEdit (из RXlib) положил Combobox, чтобы при нажатии пользователем VK_Down выпадал список с историей, а FileNameEdit временно скрывался. В таком случае список выпадет и тут же закроется.
C>Как быть в таком случае?
А не проще будет сделать вот так.
TComboFileEdit = class (TComboBox)
private
FOpenDlg:TOpenDialog;
FSpeedBtn:TSpeedButton;
...
end;
все остальное дописывается буквально за 10-15 минут.
Т.Е. смысл таков : нужно добавить к стандартному ComboBox кнопку для выбора файла ...
Cобытия CloseUp у Combobox'а нет в D5,
Про методы SendToBack и BringToFront я забыл/не знал Пасибо.
Все делал аналогично, но с той разницей что вместо использованных вами методов манипулировал Visbloм тех же компонентов и вместо CloseUp пришлось ловить три других события (OnChange, OnClick и OnKeyDown).
С edit'ом действительно работает, а с FileNameEdit — нет. Проблема, похоже в RX.
Действительно, проще было не мучиться, а написать наследника от Combobox'а