So, nun ist nurnoch ein Fehler drin:
[Fehler] USCtrl.pas(36): Inkompatible Typen: 'TComponent' und 'TSCtrl'
Und zwar im Constructor wenn die einzelnen Shape-objekte erstellt werden:
Delphi-Quellcode:
constructor TShapeControl.Create(howMany,iWidth,iHeight: integer;
BrushStyle: TBrushStyle = bsSolid;
PenStyle: TPenStyle = psSolid;
ParentObj: TWinControl = nil);
var i: integer;
begin
SetLength(FShapeArray, howMany);
for i:=0 to high(FShapeArray) do
begin
FShapeArray[i] := TShape.Create(self); { <- Da ist der Fehler}
with FShapeArray[i] do
begin
parent := ParentObj;
height := iHeight;
width := iWidth;
left := 0;
top := 0;
brush.style := BrushStyle;
pen.style := PenStyle;
end;
end;
end;
Ich vermute, das ist, weil ich bei
create(self) das
self eben für meine Klasse
TSCtrl steht, eigentlich aber etwas anderes sein sollte (ein
TCOntrol eben).
Mein Problem ist, dass ich überhaupt nicht weiß, warum bei
TShape.create überhaupt ein Parameter angegeben werden muss, was er zu bedeuten hat und wie er in meinem Fall aussehen müsste.
Genauso ist das beim Parameter meines Constructors
ParentObj. Der muss nämlich einen Startwert haben. Ich hab einfach
nil genommen, weil mir nichts besseres eingefallen ist. Am liebsten würde ich das so haben, dass als
ParentObj standardmäßig das Hauptformular des Projektes genommen wird. Geht das?