Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekte mi gleichem namen (https://www.delphipraxis.net/56809-objekte-mi-gleichem-namen.html)

Tigermoon 11. Nov 2005 16:27


Objekte mi gleichem namen
 
Hallo

Ich habe 24 shape´s

shape1 bis shape24
kann ich die irgendwie hochzählen?

oder in einem array verwalten?

stephie

Ultimator 11. Nov 2005 16:29

Re: Objekte mi gleichem namen
 
Entweder Hier im Forum suchenFindComponent oder eben ein Array of TShape und gehst dann mit ner for-Schleife durch und greifst mit MyShapeArray[i] auf die Shapes im Array zu :)

Tigermoon 11. Nov 2005 16:31

Re: Objekte mi gleichem namen
 
wie genau würdest du das array machen?

Neutral General 11. Nov 2005 16:36

Re: Objekte mi gleichem namen
 
Delphi-Quellcode:
Shapes: Array[1..10] of TShape; // so
DynShapes: Array of TShape;   //  oder so^^
Dann halt die Shapes dynamisch erzeugen. Und dann kannst du halt mit (Dyn)Shapes[i] auf die Shapes zugreifen.

Tigermoon 11. Nov 2005 16:36

Re: Objekte mi gleichem namen
 
die 24 shapes die ich habe muss ich die dann umbenennen oder raft der das dann?

Neutral General 11. Nov 2005 16:38

Re: Objekte mi gleichem namen
 
Du musst/solltest die Shapes alle während der Laufzeit erzeugen.. dann hast du das Problem nicht..

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Shapes[1] := TShape.Create(Self); // vielleicht auch ohne die Klammer.. ka ob shapes ein Parent brauchen^^
 with Shapes[1] do begin
  Parent := Self; // wichtig wenn die Klammer nötig ist^^
  Left := 100;
  Top := 50;
  Width:= 150;
  Height:= 150;
  ...
 end;
 // das halt für jedes Shape
end;

Tigermoon 11. Nov 2005 16:39

Re: Objekte mi gleichem namen
 
ok danke

Die Muhkuh 11. Nov 2005 16:42

Re: Objekte mi gleichem namen
 
Hi,

ich sehe aber auch kein Problem die Shapes manuell zu zuweisen:

Delphi-Quellcode:
ShapeArr: array [0..23] of TShape; // 24 Shapes;

procedure InitShapes;
var
  I: Integer;
begin
  // Wenn die Shapes shape0..shape23 heißen:
  for I := 0 to 23 do
  begin
    ShapeArr[I] := (FindComponent('shape' + IntToStr(I)) as TShape);
  end;

  // Wenn die Shapes nicht shape0..shape23 heißen:
  ShapeArr[0] := Shape1;
  ShapeArr[1] := ShapeTop;
  ShapeArr[2] := ShapeIrgendwas;
  // ...
end;
[edit] Fehler verbessert [/edit]

Ultimator 11. Nov 2005 17:16

Re: Objekte mi gleichem namen
 
Spider, fehlt da nicht noch ein "as TShape" bei deinem FindComponent? :?

Die Muhkuh 11. Nov 2005 17:17

Re: Objekte mi gleichem namen
 
Hoppla :oops:

Klar fehlt das. Ich verbessere es gleich ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz