Thema: FreePascal zweite Unit

Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#3

AW: zweite Unit

  Alt 2. Mär 2013, 23:00
... 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;
  Mit Zitat antworten Zitat