AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Ereignis nach drücken von Enter.

Ein Thema von Borschti · begonnen am 27. Okt 2008 · letzter Beitrag vom 31. Okt 2008
Antwort Antwort
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#1

DBGrid Ereignis nach drücken von Enter.

  Alt 27. Okt 2008, 15:15
Hallo,

Ich suche ein Ereignis für mein DBGrid welches ausgelößt wird nachdem ich in eine Zelle etwas eingetragen und Enter gedrückt habe.

Ich habe schon zich Sachen ausprobiert aber keines erzielte das gewünschte Ergebnis, nur nahe dran wie z.B. OnColExit etc.

Sorry falls ich im falschen Bereich schreibe, war mir nicht ganz sicher

Schonmal danke für eure Antworten.

mfg
Alex
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 27. Okt 2008, 15:21
Wenn ich das richtig verstanden habe, musst Du auf AfterPost von TDataset reagieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#3

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 27. Okt 2008, 15:40
Hmm nein, das funktioniert leider nich, also ich habe mir das so gedacht das ich den post auf die Datenbank mache sobald die Entertaste gedrückt wurde, also die Eingabe für die Zelle abgeschlossen wurde, mache.
Den "post" mache ich zZ. sowieso mit einem SQL-Update aber es fehlt nunmal das richtige Ereignis
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 27. Okt 2008, 15:56
Hallo,

das könnte Dein Kandidat sein:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); Wenn Key = #13, dann wurde Enter gedrückt.

Naja, was willst Du denn machen? Hier weißt Du ggfls. dass Enter gedrückt wurde, aber Du weißt nicht wo.

Wenn ich das richtig sehe, schaltet Enter zwischen bearbeiten und nichtbearbeiten einer Zelle um. An den Datensatz müsstest Du damit kommen. Fragt sich jetzt nur noch, welche Spalte bearbeitet wurde oder werden soll.

Für Deine Aufgabenstellung dürfte es aber reichen.
Delphi-Quellcode:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  Case key of
    #13 : DBGrid1.DataSource.DataSet.Post; // Naja, hier nicht abfragen, ob Edit oder Insert ...
  end;
end;
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#5

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 28. Okt 2008, 14:44
Hmm klappt leider auch nicht er startet das Event nur nachdem ich die Eingabe schon abgeschlossen habe, also ich einmal Enter gedrückt habe und danach einfach nochmal in dem DBGrid Enter drücke ohne eine Zelle "offen" zu haben.

Hat vielleicht sonst noch jemand Vorschläge?

mfg
Alex
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#6

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 31. Okt 2008, 07:30
Ich habs rausgefunden man muss das AfterFieldChange Ereignis der Query benutzen, allerdings muss man aufpassen das man in dem Ereignis direkt nicht die Felder mit Query.FieldByName() := ... verändert weil man sich sonst in einer Endlosschleife befindet und einen Stack Overflow bekommt

Vielleicht kann der Thread ja mal jemandem helfen.

mfg
Alex
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: DBGrid Ereignis nach drücken von Enter.

  Alt 31. Okt 2008, 07:35
Ich mach das so: ich setze 'Form.KeyPreview := true' und schaue dann im Form.OnKeyDown, wer gerade den Fokus hat.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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:23 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