Einzelnen Beitrag anzeigen

Char

Registriert seit: 17. Okt 2003
21 Beiträge
 
#6

Re: DynArray: array of TShape

  Alt 22. Okt 2003, 10:35
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?
  Mit Zitat antworten Zitat