![]() |
Auf Shapes mit Variablen zugreifen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich würde gerne mittels Zählvariable auf einen bestimmten String zugreife. Meine Variablen (global):
Delphi-Quellcode:
Hier der Code von meinem ersten Button (Zum erstellen und zuteilen der Farben der Shapes):
var
Form1: TForm1; n:string; i,k,m,z:integer; Shape2,Shape:TShape;
Delphi-Quellcode:
Der zweite Button (zum löschen der Shapes)
procedure TForm1.Button1Click(Sender: TObject);
begin m:=0; for k:=1 to 5 do begin for i:=1 to 5 do begin m:=m+1; z:=random(2); Shape := TShape.Create(Form1); With Shape do begin Parent := Form1; Left :=(i*30); Top :=(k*30); Width:= 30; Height:=30; if z=1 then brush.color:=clblack; Name := 'Shape' + inttostr(m); end; end; end; end;
Delphi-Quellcode:
Er compiliert es richtig und ich kann starten, jedoch wenn ich die Shapes erstellt habe und dann den 2. Button drücke, kommt eine Fehlermeldung und das Programm bricht ab. (FM im Anhang)
for m:=1 to 25 do
begin Shape2.name:='Shape' + inttostr(m); Shape2.Destroy; end; end; Könnt ihr mir sagen, warum da eine Fehlermeldung passiert? LG Niclas :) |
AW: Auf Shapes mit Variablen zugreifen
Logisch, weil du 25 mal Shape2 zerstörst ;)
|
AW: Auf Shapes mit Variablen zugreifen
Aber erst, nachdem dessen Name angepasst wurde :mrgreen:. Im Ernst: es gibt viele Möglichkeiten, eine davon wäre z.B.
![]() |
AW: Auf Shapes mit Variablen zugreifen
Ok, danke . Werde ich mir mal an schauen mit einer Tlist. :D
Aber rein theoretisch müsste meine Variante doch auch gehen oder nicht? Ich versteh leider die Fehlermeldung nicht... Niclas |
AW: Auf Shapes mit Variablen zugreifen
Du hast ein Shape und änderst den Namen und gibtst es dann frei. Anschliessend willst du den Namen des nicht mehr existenten Shapes ein weiteres Mal ändern, was natürlich misslingt.
|
AW: Auf Shapes mit Variablen zugreifen
Also würde
Delphi-Quellcode:
gehen?
for m:=1 to 25 do
begin Shape2.name:='Shape' + inttostr(m); Shape2.Destroy; Shape2.name:=''; end; end; Oder so hier?
Delphi-Quellcode:
Kann es im Moment leider nicht überprüfen (bin erst Morgen wieder am "Programier-"PC. :mrgreen: )
for m:=1 to 25 do
begin Shape2.name:='Shape' + inttostr(m); Shape2.Destroy; Shape2.TShape.Create; end; end; |
AW: Auf Shapes mit Variablen zugreifen
Nochmal: Du kannst eine Komponenten-Instanz nicht ermitteln, indem Du derjenigen, die in Deiner Variablen steckt bzw. stecken sollte, einen neuen Namen zuweist. Was Du suchst ist FindComponent, klick doch mal den auf Link in meinem letzten Beitrag.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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 by Thomas Breitkreuz