![]() |
letzte gedrückte taste im Stringgrid abfragen
Hallo,
ich habe ein Problem mit den Stringgrid. Ich brauche in der Validierungsroutine meines Stringgrids die Information welche Taste zuletzt gedrückt wurde und ob es eine Maustaste war oder nicht. Ein Ansatz den ich hier im Forum gefunden habe war folgender:
Delphi-Quellcode:
Leider geht das so nicht, da das Validierungsevent vor den beiden anderen Events aufgerufen wird und
procedure TfrmJournal.KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin pLastKey:= Key end; procedure TfrmJournal.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin pLastKey:= 0; end; // Das Validierungsevent in dem ich die zuletzt gedrückte Taste brauche procedure TfrmJournal.CellValidate(Sender: TObject; ACol, ARow: Integer; var Value: string; var Valid: Boolean); begin inherited; if (pLastKey <> 0) then begin // Mach irgedwas end; end; ich dann immer die vorletzt gedrückte Taste erhalte. Hat irgendjemand eine Idee ?? |
Re: letzte gedrückte taste im Stringgrid abfragen
Wann brauchst du das Validiersungsevent denn und was macht es?
(Hau es doch einfach an das Ende der Mouse/Key-Down Funktionen...) |
Re: letzte gedrückte taste im Stringgrid abfragen
Das Validierungsevent soll beim Verlassen einer bestimmten Zelle eine neue
Zeile in das Grid einfügen. Dies soll aber nur passieren, falls die Zelle mit Tab oder Enter verlassen wurde. Das geht bei mir auch, allerdings wird die Zeile immer eingefügt, egal wie ich die Zelle verlasse. Optimal wäre natürlich eine Event, ählich dem Validierungsevent, bei dem auch noch die Taste mit übergeben wird. Das gibts aber nicht. |
Re: letzte gedrückte taste im Stringgrid abfragen
Löse doch einfach, sobald Tab oder Enter gedrückt werden, das Event aus.
|
Re: letzte gedrückte taste im Stringgrid abfragen
Dann weiss ich aber nicht an welcher Stelle im Grid ich mich gerade befinde, da KeyDown diese
nicht als Übergabeparameter hat. Abfragen auf Grid.Col und Grid.Row um dies festzustellen funktionieren auch nicht. Hab ich probiert. |
Re: letzte gedrückte taste im Stringgrid abfragen
Zitat:
|
Re: letzte gedrückte taste im Stringgrid abfragen
Das war schon die halbe Miete. Mit Selection scheinen die Angaben zu stimmen.
Jetzt hab ich das Problem für mein eines Grid gelöst. Das Problem beim anderen ist, dass die Zelle die verlassen wird als Editor einen Datepicker hat, und da reagiert das OnKeyDown-Event nicht richtig darauf wenn ich Tab oder Enter drücke, d.h. er springt in die nächste Zelle und Selection bringt dann entsprechend die Koordinaten dieser Zelle. Trotzdem schon mal vielen Dank für die Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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