AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein letzte gedrückte taste im Stringgrid abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

letzte gedrückte taste im Stringgrid abfragen

Ein Thema von schlock · begonnen am 7. Sep 2004 · letzter Beitrag vom 7. Sep 2004
Antwort Antwort
schlock

Registriert seit: 3. Sep 2004
20 Beiträge
 
#1

letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 12:36
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:
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;
Leider geht das so nicht, da das Validierungsevent vor den beiden anderen Events aufgerufen wird und
ich dann immer die vorletzt gedrückte Taste erhalte.
Hat irgendjemand eine Idee ??
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#2

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 12:42
Wann brauchst du das Validiersungsevent denn und was macht es?
(Hau es doch einfach an das Ende der Mouse/Key-Down Funktionen...)
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
schlock

Registriert seit: 3. Sep 2004
20 Beiträge
 
#3

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 12:53
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.
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#4

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 12:59
Löse doch einfach, sobald Tab oder Enter gedrückt werden, das Event aus.
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
schlock

Registriert seit: 3. Sep 2004
20 Beiträge
 
#5

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 13:42
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 13:55
Zitat von schlock:
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.
Und was ist mit StringGrid1.Selection? (notfalls auch mal mit TStringGrid(Sender).Selection, oder (Sender as TStringGrid).Selection versuchen - manchmal funktioniert der direkte Weg innerhalb einer Ereignissroutiene des Objekts nicht richtig)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
schlock

Registriert seit: 3. Sep 2004
20 Beiträge
 
#7

Re: letzte gedrückte taste im Stringgrid abfragen

  Alt 7. Sep 2004, 14:21
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.
  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 05:10 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