Autor Beitrag
Arne Danikowski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: Mo 08.10.07 15:13 
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:
ausblenden 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:=''; //suchfeld leeren 
dbedit1.SetFocus; //focus zur Eingabe auf das erste eingabefeld
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 60


D7Ent, FB, FIBPlus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: 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 :)