Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dynamischer Zugriff auf Datenmodul (https://www.delphipraxis.net/205618-dynamischer-zugriff-auf-datenmodul.html)

Happen 28. Sep 2020 21:06

Datenbank: SQLite • Version: 3.2.1 • Zugriff über: Delphi 10

Dynamischer Zugriff auf Datenmodul
 
In Delphi benutze ich PageControl mit mehreren Seiten. Auf jeder Seite befinden sich DBGrid, DBEdit,.. für unterschiedliche Tabellen, in denen ich über BitButton blättere, z.B.:

procedure TVorlage.AnfangClick(Sender: TObject);
begin
Datenmodul1.TTeile.First;
Ende.Enabled:=True;
Rueckwaerts.Enabled:=False;
Anfang.Enabled:=False; Vorwaerts.Enabled:=True;
end;

Ich möchte nun diesen Knopf für alle Tabellen nutzen, so dass ich die anzusprechende Tabelle dynamisch über das onChange-Ereignis des PageControls ändern kann.

Wie kann ich so etwas lösen?

Für Hinweise wäre ich wirklich dankbar!

Papaschlumpf73 29. Sep 2020 09:04

AW: Dynamischer Zugriff auf Datenmodul
 
Du könntest zuerst eine Variable für die aktuell sichtbare Tabelle deklarieren. Vorzugsweise im private-Abschnitt des Formulars, damit du in allen Prozeduren des Formulars darauf zugreifen kannst.


Delphi-Quellcode:
{ Private-Deklarationen }
AktuelleTabelle: TADOTable; (oder welche Komponenten du auch für Tabellen benutzt)
Im OnChange-Ereignis des PageControls kommt dann:

Delphi-Quellcode:
if PageControl.ActivePage=TabSheet1 then AktuelleTabelle:=Datenmodul1.TTeile else
 if PageControl.ActivePage=TabSheet2 then AktuelleTabelle:=Datenmodul1.TIrgendwas else
  …
Und dann:
Delphi-Quellcode:
procedure TVorlage.AnfangClick(Sender: TObject);
begin
AktuelleTabelle.First;

end;

Delphi.Narium 29. Sep 2020 10:06

AW: Dynamischer Zugriff auf Datenmodul
 
Für die Navigation würd' ich keine eigenen Buttons nutzen, sondern 'nen TDBNavigator. Die nicht gewünschten Buttons dort kann man im Objektinspektor ausblenden. Man weist ihm die TDataSource zu, die auch dem DBGrid, den DBEdits ... zugewiesen wurde. Und schon funktioniert die Navigation.


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