AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Picklist des DBGrids öffnen...

Ein Thema von barnti · begonnen am 11. Feb 2004 · letzter Beitrag vom 18. Feb 2004
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Picklist des DBGrids öffnen...

  Alt 11. Feb 2004, 14:50
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:
Grid.Columns[i].Picklist ... // Tja, hier komme ich nicht so recht weiter...
                             // Bei der Combobox geht das mit Dropdown...?!
Wäre dankbar für Unterstützung,

Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Picklist des DBGrids öffnen...

  Alt 11. Feb 2004, 15:36
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:
procedure Grid.Onkeydown(...)
begin
  if key=return then
     Grid.Mousedown ...
end
So oder so ähnlich?!

Wer kann helfen?

Danke,

Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Picklist des DBGrids öffnen...

  Alt 11. Feb 2004, 16:36
Hallo Barnti,

ich habe leider keinen direkten Weg für dein Problem, aber vieleicht reicht dir der kleine Umweg:
http://delphi.about.com/library/weekly/aa101403b.htm

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;
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Picklist des DBGrids öffnen...

  Alt 11. Feb 2004, 18:50
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
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Picklist des DBGrids öffnen...

  Alt 18. Feb 2004, 08:45
Ah ja...

ich habe das folgende gefunden:

Borland.com: Liste im Grid öffnen

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
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#6

Re: Picklist des DBGrids öffnen...

  Alt 18. Feb 2004, 14:20
Hallo barnti,

es funktioniert:

Code:
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;
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.

mfg
eddy
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Picklist des DBGrids öffnen...

  Alt 18. Feb 2004, 19:01
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz