Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   FreePascal zweite Unit (https://www.delphipraxis.net/173550-zweite-unit.html)

alexanderbender 2. Mär 2013 19:07

zweite Unit
 
Hi Leute,

ich hab mal ne Frage wie man ein Programm in zwei Units auf teil!!!
Wäre hilfreich wenn ihr mir da weiterhelfen könntet

Alex

Dalai 2. Mär 2013 19:46

AW: zweite Unit
 
:wiejetzt:

Ohne dir jetzt zu nahe treten zu wollen: Geht's noch genauer? Konkreter gefragt: Was genau willst du aufteilen?

MfG Dalai

Perlsau 2. Mär 2013 23:00

AW: zweite Unit
 
Zitat:

Zitat von alexanderbender (Beitrag 1205731)
... wie man ein Programm in zwei Units auf teil!!!

Wo ist das Problem? Du legst eine zweite Unit an und kopierst dort die Proceduren und Functionen hinein, die du aus deiner Main-Unit auslagern möchtest. Dabei kannst du das grundsätzlich auf zwei verschiedene Weisen tun: mit oder ohne Klassendeklaration.

1. Ohne Klassendeklaration
Delphi-Quellcode:
unit Ausgelagert;

interface

procedure Ausgelagert_1;

implementation

procedure Ausgelagert_1;
begin

end;

end.
Und nicht vergessen, in die USES-Klauses deiner Haupt-Unit die Unit Ausgelagert einzubinden.

2. Mit Klassendeklaration
Delphi-Quellcode:
unit Ausgelagert;

interface

Type
    TAusGel = class

    private

    public
      constructor create();
      destructor destroy; override;

      procedure Ausgelagert_1;

    end;

implementation

procedure TAusGel.Ausgelagert_2;
begin

end;

end.
Um die Klasse in der neuen Unit verwenden zu können, mußt du in deiner Haupt-Unit eine globale Variable des Typs TausGel anlegen und damit ein neues Objekt erzeugen:
Delphi-Quellcode:
...
implementation

var
   Auslagerung : TAusGel;

procedure TMainUnitFormCreate(Sender: TObject);
begin
   Auslagerung := TAusGel.Create;
end;

...

procedure TMainUnit.FormClose(Sender: TObject);
begin
   Auslagerung.Free;
   // Oder auch: FreeAndNil(Auslagerung);
end;
So hast du Zugriff auf Klasse:

Delphi-Quellcode:
procedure TMainUnit.Button1Click(Sender: TObject);
begin
   Auslagerung.Ausgelagert_1;
end;

p80286 3. Mär 2013 12:02

AW: zweite Unit
 
Es wäre schon gut zu wissen was Du hast und was Du erreichen willst.
Ich teile Programme eigentlich immer in mind. zwei Units auf, eine für die Oberfläche, eine für die eigentliche Datenverarbeitung.

Gruß
K-H


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