![]() |
dynamisch erzeugte objekte ansprechen
hilfe ein problem :?
mit diesen code erzeuge ich shapes und dem namen Shape0, Shape1,Shape2,...
Delphi-Quellcode:
und ich will sie in einer anderen procedure ansprechen, einzeln.
for reihen:=0 to AICs-1 do
begin for i := 1 to 8 do//ALEDs do begin // SHAPE ERZEUGEN ShapeX := TShape.Create(form1); ShapeX.Name :='Shape'+inttostr(AnzahlShapes+1); // plus eins weil nur wenn es 8 leds sind dann nur eine 7 darin steht ShapeX.Parent := form1; // und INITALISIEREN shapex.Width := 16; shapex.Height := 16; shapex.Top := (i*16); shapex.Left := 179+(reihen*16); shapex.Shape := stCircle; shapex.Brush.Color := clMaroon; //shapex.FreeOnRelease; inc(AnzahlShapes); end; // ende der for 1 to ALEDs end; // for reihen 1 to AICs aber ich weiß nicht wie das geht ist mein erstes projekt mit dyn. erzeugten objekten. hatte es versucht mit ShapeX.Shape0.brush.color und Shape0.brush.color aber es geht nicht - helft mir biiiitte korn117 |
Re: dynamisch erzeugte objekte ansprechen
versuche mal activeControl: blödsinn
findcomponent müßte es sein |
Re: dynamisch erzeugte objekte ansprechen
Es ist nicht noetig den Shapes Namen zu geben. Die Komponentennamen sind eher in der IDE wichtig.
Dort legt dir die IDE gleich noch eine Variable in der Klasse an und benutzt dabei den Namen. Fuer selbst erzeugte Komponenten musst du dir selbst Variablen anlegen.
Delphi-Quellcode:
Das ist jetzt ein bischen vereinfacht. Du brauchst wahrscheinlich ein 2 dimensionales Array.
TMyForm = class(TForm)
.... public ShapeList: array [1..8] of TShape; ..... end; .... begin for i := 1 to 8 do//ALEDs do begin // SHAPE ERZEUGEN ShapeList[I] := TShape.Create(form1); ShapeList[I].Parent := form1; Jetzt kannst du mit ShapeList[1] auf die 1. Komponente zugreifen usw. |
Re: dynamisch erzeugte objekte ansprechen
das ist die weitaus elegantere variante :oops:
|
Re: dynamisch erzeugte objekte ansprechen
du solltest deine dynamischen objekte in einem array of TShape (oder of pointer) speichern...
also z.B. var shapes : array [0..7] of TShape; und dann mit shapes[0] := TShape.Create(form1); shapes[0].Parent := form1; erzeugen. dann kannst du über das array auf die shapes zugreifen |
Re: dynamisch erzeugte objekte ansprechen
ok, war jemand schneller!
|
Re: dynamisch erzeugte objekte ansprechen
vielen dank leute das war der richtige denkanschub/wissen den/was ich brauchte.
danke!!! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz