AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid und automatisches Einfügen verhindern

Ein Thema von Jelly · begonnen am 23. Mai 2006 · letzter Beitrag vom 23. Mai 2006
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

DBGrid und automatisches Einfügen verhindern

  Alt 23. Mai 2006, 16:40
Ich nutze ein DBGrid zum Editieren einer Datenbanktabelle. Nun möchte ich vermeiden, dass durch einfaches Runterscrollen bis zum Recordsetende automatisch ein neuer Datensatz eingefügt wird. Ich möchte dies nur erlaube, wenn in einem DBNavigator ausdrücklich ein neuer Datensatz angelegt werden soll, d.h. beim Scrollen soll immer nur bis zum letzten Datensatz geblättert werden, nicht mehr und nicht weniger.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: DBGrid und automatisches Einfügen verhindern

  Alt 23. Mai 2006, 17:39
Hallo Tom,

du benötigst einen Schalter, den du umlegst, wenn du bewusst einen Datensatz einfügen willst. Ich verwende in meinem Beispiel die property Tag des DataSets, aber du kannst auch einfach eine Zustandsvariable AutoInsert in deine Form aufnehmen.

Delphi-Quellcode:
procedure TDataForm.DBNavigatorClick(Sender: TObject;
  Button: TNavigateBtn);
begin
  with Sender as TDBNavigator do
    DataSource.DataSet.Tag := Ord(Button = nbInsert);
end;

procedure TDataForm.DataSetAfterCancel(DataSet: TDataSet);
begin
  DataSet.Tag := 0;
end;

procedure TDataForm.DataSetAfterPost(DataSet: TDataSet);
begin
  DataSet.Tag := 0;
end;

procedure TDataForm.DataSetBeforeInsert(DataSet: TDataSet);
begin
  if DataSet.Tag = 0 then
    Abort;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: DBGrid und automatisches Einfügen verhindern

  Alt 23. Mai 2006, 17:50
Danke marabu, klappt so fast.

Nur lautet das richtige Event BeforeAction und nicht OnClick.

Das OnClick Event wird nach der Standardaktion ausgeführt, was mir in diesem Fall ja nix nützt... BeforeAction hingegen wird vor der Standardaktion ausgeführt.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: DBGrid und automatisches Einfügen verhindern

  Alt 23. Mai 2006, 17:54
Hast Recht - war beim Kopieren meines eigenen Codes etwas unkonzentriert.

marabu
  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 01:21 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