Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB Navigator nachprogrammieren (https://www.delphipraxis.net/87552-db-navigator-nachprogrammieren.html)

Salomon 2. Mär 2007 08:07

Datenbank: MS SQL • Zugriff über: ADO

DB Navigator nachprogrammieren
 
Moin,
ich wollte mal eben den DB Navigator nachprogrammieren. Funktioniert soweit auch, nur wenn man mit dem Next Button zum letzten Datensatz navigiert werden die Buttons "Next" und "Last" nicht disabled. Erst beim nächsten Klick, der natürlich keinen neuen Datensatz anzeigt. Kann ich irgendwie abfragen ob der nächste Datzensatz eof ist?

Delphi-Quellcode:
procedure TFRM_NewUser.BtnLastClick(Sender: TObject);
begin
  DM_ProjectPoint.TB_Users.Last;
  BtnFirst.Enabled := true; BtnPrior.Enabled := true;
  BtnNext.Enabled := false; BtnLast.Enabled := false;
end;

procedure TFRM_NewUser.BtnNextClick(Sender: TObject);
begin
  DM_ProjectPoint.TB_Users.Next;
  BtnFirst.Enabled := true; BtnPrior.Enabled := true;
  if DM_ProjectPoint.TB_Users.Eof then BtnLastClick(self);
end;
Ciao
Marcus

ps. mir ist gerade aufgefallen das der DBNavigator auch erst beim nächsten klick die buttons deaktiviert...

hirnstroem 2. Mär 2007 09:10

Re: DB Navigator nachprogrammieren
 
Delphi-Quellcode:
  if DM_ProjectPoint.TB_Users.RecNo = DM_ProjectPoint.TB_Users.RecordCount - 1 then ...
^^ so sollte das funktionieren.

dataspider 2. Mär 2007 09:25

Re: DB Navigator nachprogrammieren
 
Hi,

also RecordCount würde ich nicht bei jedem Datensatzwechsel aufrufen.
Ich würde es etwa so machen:

1. DatenMenge.DisableControls
2. Next - Key merken bzw. Bookmark setzen
3. noch ein next
4. Key mit gemerkten vergleichen
5. Wenn unterschiedlich - Previous oder auf Bookmark gehen, wenn gleich - Button Disablen
6. While ControlsDisabled... EnableControls

Cu, Frank

Salomon 2. Mär 2007 09:36

Re: DB Navigator nachprogrammieren
 
Ich hab jetzt erstmal die Lösung von hirnstroem genommen. Funktioniert soweit :) Die Bookmark Methode probier ich aber auch noch mal aus. Die wird für große Datenmengen wohl schneller sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 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