![]() |
Datenbank: firebird • Version: 1.5 • Zugriff über: fibplus
automatisches post bei scroll verhindern
hi
habe folgendes problem: wenn ich in meinem prog einen datensatz ändere (also wenn in edit-modus gegangen wird) und ich - ohne explizit mit dem navigator zu posten - im dataset scrolle, dann wird automatisch die änderung die ich gemacht habe gepostet. das will ich aber nicht...die änderung soll dann gecancelt werden. hatte mir batürlich gedacht im handler des beforescroll-ereignisses einfach folgendes einzubauen:
Delphi-Quellcode:
aber der post findet schon statt bevor dieses ereignis abgefeuert wird, und da isses ja schon zu spät :-(
procedure TDataModule1.DataSetDicEntriesBeforeScroll(DataSet: TDataSet);
begin try Dataset.Cancel(); except end; end; |
Re: automatisches post bei scroll verhindern
Hallo Martin,
du kannst das Speichern im Ereignis OnBeforePost() durch eine silent exception (Abort) verhindern. Allerdings solltest du dann ein Flag einführen, welches dir noch ein gewolltes Speichern erlaubt:
Delphi-Quellcode:
Grüße vom marabu
procedure TDataModule1.DataSetDicEntriesBeforePost(DataSet: TDataSet);
begin with DataSet do if Tag = 0 then Cancel(); end; |
Re: automatisches post bei scroll verhindern
Zitat:
|
Re: automatisches post bei scroll verhindern
Du mußt Dir die Dokumentation von FIBplus unbedingt genauer ansehen ! Es gibt zum Bsp. gerade mit dem Scrollen ein Zeitintervall, das man einstellen kann. Da geht es allerdings um das "Nachladen" von Detail-Datensätzen. Könnte trotzdem in dem Fall sogar hilfreich sein. So viele Tutos, wie die mittlerweile haben sind echt sehr selten zu finden !
|
Re: automatisches post bei scroll verhindern
kunststück, nach den dokus hatt ich schon mehrmals gesucht...in meinem fib-verzeichnis gibs lediglich die verzeichnisse examples, source und tools. und in der readme steht auch nix weltbewegendes.
bin ich zu blöd? sag jetz bitte nicht google, da hab ichs natürlich auch schon versucht? echt? da gibs viele tutos zu? wo? |
Re: automatisches post bei scroll verhindern
Hechel, was ? :mrgreen: Neben Google gibt es viel interessantere Homepages, z.B. die von Devrace, dem Hersteller von FIBplus. :zwinker: Und dort sind zig Downloads von Artikeln zu finden. Bei mir liegen bestimmt 200 ausgedruckte Seiten rum. Ca. das 10fache ist noch gezippt oder nur kurz überflogen. Den Rest habe ich noch nicht mal gesichtet.
Falls das hier doch stimmen sollte : Zitat:
![]() :duck: |
Re: automatisches post bei scroll verhindern
hmmm
okay, die hilfe hab ich gefunden, tutos immer noch net naja, trotzdem hab ich immer noch keine lösung für mein problem gefunden :-( kennt sich da echt keiner aus? |
Re: automatisches post bei scroll verhindern
Hallo Martin,
ich bleibe bei meinem Vorschlag von neulich - siehe Beitrag #2. Deine Komponente DatasetDicEntries (TFIBDataSet?) erbt laut Produktdokumentation (fibplus6_45) das Ereignis OnBeforePost() von TDataSet. Warum findest du dieses Ereignis nicht im Object Inspector? Grüße vom marabu |
Re: automatisches post bei scroll verhindern
reden wir von der gleichen sache?
Zitat:
Delphi-Quellcode:
Das Posten sieht dann folgendermaßen aus:
procedure TWBWin.DBNavigator4BeforeAction(Sender: TObject;
Button: TNavigateBtn); begin if Button = nbPost then TDataModule1(self.Owner).DicentriesMayPost := true; end;
Delphi-Quellcode:
Der einzige Nachteil, den das hat, ist natürlich, dass wenn ich durch das Dataset scrolle während es im Edit-Mode ist, dann wird einfach nurgecancelt und dann abgebrochen (also der Pointer bleibt auf dem Eintrag); ich muss dann noch ein zweites Mal scrollen, damit's dann wirklich zum nächsten oder vorherigen Eintrag geht... :|
procedure TDataModule1.DataSetDicEntriesBeforePost(DataSet: TDataSet);
begin if (not self.DicentriesMayPost) then begin self.DataSetDicEntries.Cancel(); abort(); end else self.DicentriesMayPost := false; end; |
Re: automatisches post bei scroll verhindern
Zitat:
Hättest du nur gleich den DBNavigator erwähnt. Wenn der record pointer ausschließlich über diesen Navigator bewegt wird, dann kannst du sogar ohne Flag arbeiten:
Delphi-Quellcode:
Getippt und nicht getestet.
procedure TDemoForm.DBNavigatorBeforeAction(Sender: TObject;
Button: TNavigateBtn); begin with (Sender as TDBNavigator).DataSource.DataSet do if (Button in [nbFirst, nbLast, nbPrior, nbNext]) and (State <> dsBrowse) then Cancel; end; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz