Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.20;
Скачать: CL | DM;

Вниз

Автоматическое открытие Lookup поля в DBGrid   Найти похожие ветки 

 
IrenFD ©   (2002-04-22 15:13) [0]

Кто знает точно, помогите.
Как заставить автоматически открываться Lookup поле при входе в него или нажатии на букву на клавиатуре.


 
Johnmen ©   (2002-04-22 15:16) [1]

В смысле свешивать соплю или открывать соотв. НД ?


 
Lusha ©   (2002-04-22 15:22) [2]

Раскрыть выпадающий список Lookup поля можно, например, так...

procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.SetFocus;
TMyDbGrid(DBGrid1).ShowEditor;
if Assigned(TMyDbGrid(DBGrid1).InplaceEditor) then
begin
keybd_Event(VK_MENU, 0, 0, 0);
keybd_Event(VK_DOWN, 0, 0, 0);
keybd_Event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_Event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
end;


 
IrenFD ©   (2002-04-22 18:31) [3]

Огромное спасибо - помогло, только я сделал в событии
OnColEnter маленькое изменение

begin
With DBGrid1 do
begin
if SelectedField.Lookup then
begin
EditorMode:=true;
keybd_Event(VK_MENU, 0, 0, 0);
keybd_Event(VK_DOWN, 0, 0, 0);
keybd_Event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_Event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
end;
end;


 
IrenFD ©   (2002-04-22 19:27) [4]

А вот мой окончательный вариант:

procedure TRosnExpForm.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in [#48..#123,#128..#175,#224..#242])
then begin
With DBGrid1 do
begin
if SelectedField.Lookup
and (not LookOpen)
then begin
EditorMode:=true;
keybd_Event(VK_MENU, 0, 0, 0);
keybd_Event(VK_DOWN, 0, 0, 0);
keybd_Event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_Event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_Event(VK_DOWN, 0, 0, 0);
keybd_Event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
LookOpen:=true; //Добавлена приватная переменная,
//чтоб Lookup не дергался
Inherited;
end;
end;
end;
end;

После всего этого Lookup начал искать требуемое значение в "сопле", как тут выразились


 
IrenFD ©   (2002-04-22 19:29) [5]

Еще один момент: в событии OnCellExit нужно сбросить LookOpen, чтоб следующее поле сработало.(Например...)



Страницы: 1 вся ветка

Текущий архив: 2002.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-64645
Riko
2002-05-07 15:33
2002.05.20
Поочередное выполнение функций...


1-64565
Wolverin
2002-05-04 21:58
2002.05.20
RES


7-64857
gluka
2002-02-16 02:47
2002.05.20
Как можно в вынь2к, ХР закрыть доступ к дисководу??? Есть ли что то для етого в АПИ??


3-64452
Bomberman
2002-04-22 12:24
2002.05.20
Базы данных


1-64572
()utLaw
2002-04-20 15:47
2002.05.20
округление+RichEdit+WMF