Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verschiedene Teile eines Programms auf Units aufteilen? (https://www.delphipraxis.net/32726-verschiedene-teile-eines-programms-auf-units-aufteilen.html)

naimlzz 27. Okt 2004 18:15


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

Christian Seehase 27. Okt 2004 18:39

Re: Verschiedene Teile eines Programms auf Units aufteilen?
 
Moin naimlzz,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Zitat:

Zitat von naimlzz
Es sollen aber die gleichen Variablen und Parameter in beiden Units gelten, sodass ich diese auch hin und herschicken kann.

:gruebel:

Was meinst Du damit?

Nicodius 27. Okt 2004 18:44

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 ;)

gsh 27. Okt 2004 18:47

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:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }    <-- Nur für diese Unit
  public
    { Public-Deklarationen }     <-- Für alle Units zu gängig
  end;
gsh

Nicodius 27. Okt 2004 18:54

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;

himitsu 27. Okt 2004 19:07

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;

Nicodius 27. Okt 2004 19:09

Re: Verschiedene Teile eines Programms auf Units aufteilen?
 
für was steht ".inc" für include?

Luckie 27. Okt 2004 19:14

Re: Verschiedene Teile eines Programms auf Units aufteilen?
 
Dioe Endung der Datei ist vollkommen egal. Es muss nur eine reine ASCII Text Datei sein.

naimlzz 27. Okt 2004 19:15

Re: Verschiedene Teile eines Programms auf Units aufteilen?
 
Zitat:

Zitat von Christian Seehase
erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Danke, auch für die Antworten :-D

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