Entwickler-Ecke
Datenbanken - Probleme mit dbnavigator
Arne Danikowski - Mo 08.10.07 15:13
Titel: Probleme mit dbnavigator
Hallo Leute,
ich habe folgendes Problem. Immer wenn ich mit dem dbNavigator einen neuen Datensatz erstellen will fügt der zwar eine neue Zeile ein (im Grid sichtbar und editierbar) aber sobald ich auf das dbedit Feld klicke wird der datensatz aufgerufen, der grade im Grid makriert war.
Ist der erste Datensatz im Grid markiert funktioniert es.
folgendes habe ich unter dbnavigator1 stehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin if Button = nbInsert then begin
edit1.Text:=''; dbedit1.SetFocus; end end; |
Wenn ich im dbgrid einen Datetensatz markiert habe, muss ich zweimal auf den insert button des dbNavigators klicken damit ich einen Datensatz anlegene kann.
jasocul - Mo 08.10.07 15:29
Das Phänomen kenne ich. Ich habe mich vor Jahren vom DBNavigator verabschiedet und mit eigenen Buttons gearbeitet.
Ursache ist meines Wissens, dass beim Verlassen des DBGrid ein Cancel ausgelöst wird. iirc wird der Datensatz erst in den insert-Modus gesetzt und dann das DBNavigator.Click ausgelöst. Dadurch gibt es ein Cancel auf dem DataSet, wenn Du den Focus setzt und das wars. Wenn Du den Focus im entsprechenden DataSet-Event (BeforeInsert) machst, sollte es aber funktionieren.
alex517 - Mo 08.10.07 15:47
Hallo Arne,
das Verhalten hat nichts mit dem Navigator zu tun sondern mit dem DBGrid.
Standardmäßig ist im DBGrid die Option dgCancelOnExit gesetzt.
Und damit macht Grid genau das was eingestellt ist:
Wenn das Grid den Focus verliert werden evtuelle Änderungen gecancelt.
alex
Arne Danikowski - Mo 08.10.07 17:16
Hallo Alex,
Dein Tipp scheint zu funktionieren. Vielen Dank für die schnelle Antwort.
Ist es nicht schön? Man lernt nie aus :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!