AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Unit-übergreifend arbeiten/Datenaustausch zwischen Units??
Thema durchsuchen
Ansicht
Themen-Optionen

Unit-übergreifend arbeiten/Datenaustausch zwischen Units??

Ein Thema von Rayne · begonnen am 12. Dez 2005 · letzter Beitrag vom 12. Dez 2005
Antwort Antwort
Rayne

Registriert seit: 27. Nov 2005
7 Beiträge
 
#1

Unit-übergreifend arbeiten/Datenaustausch zwischen Units??

  Alt 12. Dez 2005, 17:42
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

Die Prozedur im Formular 1 heißt:

Delphi-Quellcode:
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;
Genau diesen Quellcode möchte ich auch im Formular 2 verwenden, um mir auch dort diese Informationen anzeigen zu lassen.
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
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#2

Re: Unit-übergreifend arbeiten/Datenaustausch zwischen Units

  Alt 12. Dez 2005, 18:02
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?
  Mit Zitat antworten Zitat
Rayne

Registriert seit: 27. Nov 2005
7 Beiträge
 
#3

Re: Unit-übergreifend arbeiten/Datenaustausch zwischen Units

  Alt 12. Dez 2005, 21:01
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:
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;
Allerdings kommt dann folgender Fehler:

';' erwartet, aber '.' gefunden


Woran kann das liegen? Ist der Ansatz überhaupt richtig?

Vielen Dank

Rayne
  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 06:32 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