Einzelnen Beitrag anzeigen

Char

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

Re: DynArray: array of TShape

  Alt 21. Okt 2003, 17:06
Ok, danke, das hat diesen Fehler schonmal beseitigt.

Ich habe (versucht) eine Klasse zu schreiben, die in der Lage ist (so ziemlich) beliebig viele TShape-Komponenten zu erzeugen und zu verwalten.

Sie enthält bis jetzt die Methoden
Delphi-Quellcode:
{ public-Teil }
  procedure Move(x,y: integer; whichOne: integer = 0); { <- Position eines einzelnen oder aller Shapes verändern }
  procedure Del(whichOne: integer = 0); { <- Einzelne oder alle Shapes löschen }
  procedure Show(show: boolean = true; whichOne: integer = 0); { <- Einzelne oder alle Shapes anzeigen lassen }
  procedure Resize(width,height: integer; whichOne: integer = 0); { <- Größe eines einzelnen oder aller Shapes verändern }
  constructor Create(howMany,iWidth,iHeight: integer; { <- constructor, dem die "Startwerte" übergeben werden }
                                      BrushStyle: TBrushStyle = bsSolid;
                                      PenStyle: TPenStyle = psSolid;
                                      ParentDing: TWinControl); { <- ???}
  destructor Free; { <- destructor, der erst alle TShapes free't und dann die Klasse ansich }
Die TShapes werden in einem Array gespeichert:

Delphi-Quellcode:
{ private-Teil }
 FShapeArray: array of TShape;
In der Theorie sollte das funktionieren, doch ein paar Fehler sind noch drin.

Welchen Datentyp muss denn ParentDing im Constructor haben?

Der sieht übrigends su aus:

Delphi-Quellcode:
constructor TShapeControl.Create(howMany,iWidth,iHeight: integer;
                   BrushStyle: TBrushStyle = bsSolid;
                   PenStyle: TPenStyle = psSolid;
                   Parent: TWinControl); { <- ??? }
var i: integer;
begin
 SetLength(FShapeArray, howMany);

 for i:=0 to high(FShapeArray) do
    FShapeArray[i] := TShape.Create(self);

    with FShapeArray[i] do
     begin
      parent := ParentDing; { <- ParentDing }
      height := iHeight;
      width := iWidth;
      left := 0;
      top := 0;
      brush.style := BrushStyle;
      pen.style := PenStyle;
     end;
end;
Ich hoffe ihr könnt mir helfen...

  Mit Zitat antworten Zitat