![]() |
Verschiedene Teile eines Programms auf Units aufteilen?
Tach leutz!
Simple Frage: ich habe ein Programm in dem z.B. mehrere Prozeduren abgewickelt werden. Aus Gründen der Übersicht möchte ich diese einzelnen Programmteile aber auf mehrere Units verteilen. Es sollen aber die gleichen Variablen und Parameter in beiden Units gelten, sodass ich diese auch hin und herschicken kann. Nur weiss ich nicht wie das geht. :gruebel: Ich habe schon alle Tutorials durchsucht und in der Foren gestöbert bzw. die Suchfunktion in Anspruch genommen, ohne Resultat. :? Vielleicht könnte mir einer von euch ein bisschen auf die Sprünge helfen. :-D (Ich weiß, ist eine absolute noob-Frage, aber soweit sind wir im Schul- Informatikunterricht noch nicht... Wär nett, wenn mir jemand von euch helfen könnte...) THX im Voraus greetz naimlzz |
Re: Verschiedene Teile eines Programms auf Units aufteilen?
Moin naimlzz,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Zitat:
Was meinst Du damit? |
Re: Verschiedene Teile eines Programms auf Units aufteilen?
er meint das er in unit 23 auch die variablen in unit 1 ansprechen will (Form1.z := "Hallo" ) das geht in dem du sie in der jeweiligen ursprungsunit im public deklarierst ;)
|
Re: Verschiedene Teile eines Programms auf Units aufteilen?
Das ist ganz einfach du steckst alles was du in allen Units verwenden willst in die public-Deklaration:
Code:
gsh
type
TForm1 = class(TForm) private { Private-Deklarationen } <-- Nur für diese Unit public { Public-Deklarationen } <-- Für alle Units zu gängig end; |
Re: Verschiedene Teile eines Programms auf Units aufteilen?
was hab ich denn etwa vorher gesagt :?
naja auf jeden fall du bindest units ein indem du sie am besten in dasprogramm verzeichnis gibst und den unit namen bei "units" hinzzufügst einbinden dann so
Delphi-Quellcode:
uses Info;
var MUnit : Info.TClass; begin MUnit := TMyUnit.create //dann kannste auf alles zugreifen MUnit.DoThat; end; |
Re: Verschiedene Teile eines Programms auf Units aufteilen?
es besteht die Möglichkeit Teile eine Unit in eine andere Datei auszulagern und dann per Include wieder einzubinden
{$INCLUDE Da.tei} Also die Daten in dieser externen Datei werden dann beim kompilieren direkt an die angegebene Stelle eingebunden und werden zum Teil der Unit. (also ist in dieser Datei alles vorhanden, was auch unter Unit vorhanden ist) Dazu braucht einfach nur der Teil, welcher raus soll, in eine andere Datei kopiert zu werden. In dieser (anderen) Datei darf aber sonst nichts stehen, nur der Code
Delphi-Quellcode:
************************************************** *******************************************
{Unit1.pas}
Unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Type TForm1 = Class(TForm) Procedure FormCreate(Sender: TObject); Procedure FormDestroy(Sender: TObject); Private Public End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.FormCreate(Sender: TObject); Begin ... End; Procedure TForm1.FormDestroy(Sender: TObject); Begin ... End; End.
Delphi-Quellcode:
{Unit1.pas}
Unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Type TForm1 = Class(TForm) Procedure FormCreate(Sender: TObject); Procedure FormDestroy(Sender: TObject); Private Public End; Var Form1: TForm1; Implementation {$R *.dfm} {$INCLUDE Unit2.inc} Procedure TForm1.FormDestroy(Sender: TObject); Begin ... End; End.
Delphi-Quellcode:
{Unit2.inc - ich nenn' die aber gern auch .pas .. macht das öffnen mit Delphi enfacher ^^}
Procedure TForm1.FormCreate(Sender: TObject); Begin ... End; |
Re: Verschiedene Teile eines Programms auf Units aufteilen?
für was steht ".inc" für include?
|
Re: Verschiedene Teile eines Programms auf Units aufteilen?
Dioe Endung der Datei ist vollkommen egal. Es muss nur eine reine ASCII Text Datei sein.
|
Re: Verschiedene Teile eines Programms auf Units aufteilen?
Zitat:
Ich glaube damit ist mein Problem gelöst :-D Gibt das dann aber bei großen Programmen mit vielen Seiten Quelltext keine Geschwindigkeit-optimierendere Lösung? Oder ist das sowieso nicht erheblich? THX! greetz naimlzz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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