Zitat von
mkinzler:
Du könntest die Definitionene auch in eine 3.Unit auslgern, welche du von beiden anderen Units einbindest.
@mkinzler dann wäre glaub ich wieder das gleiche Problem wie vorher
Zitat von
DocE:
Abhilfe könnte eine eigene
Unit (z.B. "MeineTypen") schaffen, in der Du Deine eigenen Typen z.B. THaus deklarierst. Diese kannst Du dann überall nach
interface einbinden, ohne einen Zirkelbezug zu erzeugen.
@Doc könntest du mir kurz aufschreiben, wie man die
Unit im interface Teil einbindet? Bin da noch etwas zu noob zu und find mal wieder unter falschen Stichwörtern nicht das, was ich brauche^^
[quote="Khabarakh"]Am Besten wäre es, wenn du im Konstruktor nur eine Canvas übergibst.[quote]
Irgendwie beschwert er sich nun, dass er Form1 nicht findet.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Unit2, StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
Haus1: THaus;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
Haus1 := THaus.create(Image1.canvas);
end;
end.
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type Thaus =
class(Tobject)
private
zimghinten : TCanvas;
public
constructor create(imghinten : TCanvas);
virtual;
procedure Zeichnen;
end;
implementation
constructor THaus.create(imghinten : TCanvas);
begin
inherited create;
zimghinten := imghinten;
end;
procedure THaus.Zeichnen;
begin
zimghinten.Rectangle(5,5,20,20);
end;
end.