Ich habe verschiedene units, in denen diverse Klassen stehen, nun möchte ich diese in einer Unit sammeln und Verfügbar machen (so dass man nur noch diese eine Unit einbinden muss anstatt alle anderen).
Das geht auch. Was leider nicht geht, ist dass ich das auch mit Aufzählungstypen mache, nur warum geht es nicht. Bzw. Wie macht man es richtig ?
Hier das ganze Beispiel :
Code: Alles auswählen
Unit Unit1;
{$MODE objfpc}{$H+}
Interface
Uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
Type
{ TForm1 }
TForm1 = Class(TForm)
Button1: TButton;
Procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
End;
Var
Form1: TForm1;
Implementation
Uses unit_a; // Einbinden der Unit_a (würde man Unit_b einbinden dann würde es gehen)
{$R *.lfm}
{ TForm1 }
Procedure TForm1.Button1Click(Sender: TObject);
Var
d: TDummy;
Begin
d := TDummy.Create;
d.P1 := upV1; //Hier kommt der Fehler upv1 not found
d.free;
End;
End.
Code: Alles auswählen
Unit unit_A;
{$MODE objfpc}{$H+}
Interface
Uses
Classes, SysUtils, unit_b;
Type
TUserProp = unit_b.TUserProp; // Diesen Typ kennt er leider nicht :(
TDummy = unit_b.TDummy; // Das hier scheint der Compiler richtig zu machen
Implementation
End.
Code: Alles auswählen
Unit unit_b;
{$MODE objfpc}{$H+}
Interface
Uses
Classes, SysUtils;
Type
TUserProp = (upV1, upV2);
TDummy = Class
private
public
P1: TUserProp;
End;
Implementation
End.