![]() |
Unit-übergreifend arbeiten/Datenaustausch zwischen Units??
Hallo Leute!
Ich habe folgendes Problem: Ich habe 2 Formulare. Im Formular 1 habe ich eine Prozedur „Blättern“, mit der ich durch meinen angelegten Datensatz blättern kann und mir die Daten in Edit-Feldern anzeigt.. Nun möchte ich im Formular 2 auf genau diese Informationen zugreifen. Ich möchte dort also genau durch denselben Datensatz mit derselben Prozedur blättern können. Jedoch weiß ich nicht ganz genau, wie ich das bewerkstelligen kann :-o Die Prozedur im Formular 1 heißt:
Delphi-Quellcode:
Genau diesen Quellcode möchte ich auch im Formular 2 verwenden, um mir auch dort diese Informationen anzeigen zu lassen.
procedure TForm1.Blttern1Click(Sender: TObject);
begin if r<anzahl then begin edit1.text:=saetze[r].gurtzeug; edit2.text:=IntToStr(saetze[r].baujahr1); edit3.text:=IntToStr(saetze[r].spruenge1); edit4.text:=saetze[r].hauptschirm; edit5.text:=IntToStr(saetze[r].baujahr2); edit6.text:=IntToStr(saetze[r].spruenge2); edit7.text:=saetze[r].reserve; edit8.text:=IntToStr(saetze[r].baujahr3); edit9.text:=IntToStr(saetze[r].spruenge3); edit10.text:=saetze[r].aad; edit11.text:=IntToStr(saetze[r].baujahr4); edit12.text:=IntToStr(saetze[r].spruenge4); Edit13.Text:=IntToStr(saetze[r].preis); Edit14.Text:=IntToStr(saetze[r].index); r:=r+1; end else begin r:=0; end; end; Ich brauche quasi so eine Art „Verknüpfung“ ;-) Ich meine mich erinnern zu können, dass es dort Befehle gibt wie „uses Unit X“ oder „with Unit X do“, aber so richtig bin ich mir da nicht sicher und ich weiß auch nicht, an welche Stelle diese Befehle müssen :-( Wäre euch für jede Hilfe sehr dankbar :-) Rayne |
Re: Unit-übergreifend arbeiten/Datenaustausch zwischen Units
Hallo,
Uses <unit> ist zunächst mal richtig. 'With' hat mit Units aber nichts zu tun. Da Du direkt auf die Edit-Controls zugreifst, kannst Du die Prozedur, so wie sie ist, nicht für ein anderes Form verwenden. Dazu könntest Du z. Bsp. eine ähnliche Prozedur 'Blaettern' in einer dritten unit schreiben, die die Daten z.Bsp. über var-Parameter zurückgibt. In dieser Unit müssten auch das Array Sätze und der Satzzeiger r lokal deklariert sein, außerdem sollten da auch die Funktionen zum Laden und Speichern dar Daten, zum Hüpfen auf den ersten und letzten Satz und was Du sonst noch brauchst drin sein. Beide Forms können diese Prozeduren dann verwenden, wenn die Unit mit uses bei beiden eingebunden wird. Alle Klarheiten beseitigt? |
Re: Unit-übergreifend arbeiten/Datenaustausch zwischen Units
Hi!
So richtig viel konnte ich aus deiner Aussage leider nicht entnehmen, was aber wohl mehr daran liegt, dass ich ein ziemlich n00b in Delphi bin ;-) Habe jetzt gehört, dass ich die Prozedur aus Form 1 in Form 2 einfach so aufrufen kann: Form1.meine Prozedur Habe die Prozedur in Form 2 also so geschrieben:
Delphi-Quellcode:
Allerdings kommt dann folgender Fehler:
procedure TForm1.Blttern1Click(Sender: TObject);
begin if r<anzahl then begin edit1.text:=saetze[r].gurtzeug; edit2.text:=IntToStr(saetze[r].baujahr1); edit3.text:=IntToStr(saetze[r].spruenge1); edit4.text:=saetze[r].hauptschirm; edit5.text:=IntToStr(saetze[r].baujahr2); edit6.text:=IntToStr(saetze[r].spruenge2); edit7.text:=saetze[r].reserve; edit8.text:=IntToStr(saetze[r].baujahr3); edit9.text:=IntToStr(saetze[r].spruenge3); edit10.text:=saetze[r].aad; edit11.text:=IntToStr(saetze[r].baujahr4); edit12.text:=IntToStr(saetze[r].spruenge4); Edit13.Text:=IntToStr(saetze[r].preis); Edit14.Text:=IntToStr(saetze[r].index); r:=r+1; end else begin r:=0; end; end; ';' erwartet, aber '.' gefunden Woran kann das liegen? Ist der Ansatz überhaupt richtig? Vielen Dank :-) Rayne |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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-2025 by Thomas Breitkreuz