![]() |
Picklist des DBGrids öffnen...
Hallo,
ich habe eine TDBGrid-Komponente auf meinem Formular. Die Felder, die auf Lookup-Fields beruhen kann man beim Klicken auf die entsprechende Zelle öffnen. Jetzt hätte ich gern einen Tastaturhandler, der die Picklist öffnet, wenn der Benutzer in diesem Feld die Returntaste drückt. Auf das Tastaturevent reagieren - kein Problem. Nur: Wie weise ich diese Picklist an sich zu öffnen?
Delphi-Quellcode:
Wäre dankbar für Unterstützung,
Grid.Columns[i].Picklist ... // Tja, hier komme ich nicht so recht weiter...
// Bei der Combobox geht das mit Dropdown...?! Gruß, Barnti |
Re: Picklist des DBGrids öffnen...
Hallo noch einmal,
wenn es nicht auf direktem Weg geht...vielleicht kann ich ja das Klicken auf die Picklist direkt aufrufen. So in etwa:
Delphi-Quellcode:
So oder so ähnlich?!
procedure Grid.Onkeydown(...)
begin if key=return then Grid.Mousedown ... end Wer kann helfen? Danke, Gruß, Barnti |
Re: Picklist des DBGrids öffnen...
Hallo Barnti,
ich habe leider keinen direkten Weg für dein Problem, aber vieleicht reicht dir der kleine Umweg: ![]() Damit hast du eine eigene DBLookupCombo. Wenn du den Code dann geringfügig änderst:
Delphi-Quellcode:
procedure TForm1.GridKeyPress(Sender: TObject; var Key: Char); begin if (key = Chr(9)) then Exit; if (Grid.SelectedField.FieldName = 'Anfahrtstag') then begin DBLookupComboBox1.SetFocus; if key=chr(13) then DBLookupComboBox1.DropDown else SendMessage(ComboBox1.Handle, WM_Char, word(Key), 0); end; end; |
Re: Picklist des DBGrids öffnen...
Hi,
das ist nett gemeint. :) Aber eben nicht das, was ich möchte. Die voegeschlagene Lösung verwende ich bei meinen TDBEdit-Komponenten. Da funktioniert das auch alles sehr gut. Da aber ein Grid schon über die gewünschte Funktionalität verfügt, wollte ich nicht noch einen Extraweg einschlagen. Da die Komponente bereits über die Liste verfügt und sich auf Mausklick auch öffnen lässt, gibt es sicher auch einen Weg dies auf Tastendruck zu tun...?! Danke trotzdem! Noch mehr Ideen? Gern... Gruß, Barnti |
Re: Picklist des DBGrids öffnen...
Ah ja...
ich habe das folgende gefunden: ![]() Den Tip der Seite habe ich leider noch nicht umsetzen können. Aber die Liste läßt sich auch mit der Tastenkombination 'alt+arrowdown' öffnen. Gruß, Barnti |
Re: Picklist des DBGrids öffnen...
Hallo barnti,
es funktioniert:
Code:
In meiner ersten Spalte (PosArt) habe ich eine Pickliste hinterlegt. Diese kann aktiviert werden, wenn ich auf den Pfeil abwärts clicke, Alt-Down betätige oder von einer anderen Spalte kommend in diese Spalte clicke.
procedure TFAuf.dbg32ColEnter(Sender: TObject);
var si : integer; fldn : string; begin if (dgEditing in dbg32.Options) then begin si := dbg32.SelectedIndex; fldn := lower(dbg32.Columns.Items[si].FieldName); if fldn = 'posart' 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; end; mfg eddy |
Re: Picklist des DBGrids öffnen...
hi eddy,
jo hatte grad die Zeit das mal bei mir einzubauen. Klappt jetzt auch. Habe allerdings das ganze auch so weit umgesetzt, dass es ohne die Maus funktioniert. Danke + Gruß, Barnti |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz