AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Shapes mit Variablen zugreifen

Ein Thema von Niclas · begonnen am 21. Okt 2015 · letzter Beitrag vom 21. Okt 2015
Antwort Antwort
Niclas

Registriert seit: 21. Okt 2015
3 Beiträge
 
#1

Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 17:44
Hallo!
Ich würde gerne mittels Zählvariable auf einen bestimmten String zugreife.

Meine Variablen (global):
Delphi-Quellcode:
var
  Form1: TForm1;
  n:string;
  i,k,m,z:integer;
  Shape2,Shape:TShape;
Hier der Code von meinem ersten Button (Zum erstellen und zuteilen der Farben der Shapes):

Delphi-Quellcode:
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;
Der zweite Button (zum löschen der Shapes)
Delphi-Quellcode:
for m:=1 to 25 do
      begin
          Shape2.name:='Shape' + inttostr(m);
          Shape2.Destroy;
      end;

      end;
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)

Könnt ihr mir sagen, warum da eine Fehlermeldung passiert?

LG Niclas
Miniaturansicht angehängter Grafiken
fehlermeldung.png  
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:09
Logisch, weil du 25 mal Shape2 zerstörst
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:14
Aber erst, nachdem dessen Name angepasst wurde . Im Ernst: es gibt viele Möglichkeiten, eine davon wäre z.B. Hier im Forum suchenFindComponent. Eleganter fände ich persönlich es aber, wenn man die dynamisch erstellten Shapes in einer geeigneten Liste verwalten würde, z.B. TObjectList oder gleich TComponentList.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Niclas

Registriert seit: 21. Okt 2015
3 Beiträge
 
#4

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:28
Ok, danke . Werde ich mir mal an schauen mit einer Tlist.
Aber rein theoretisch müsste meine Variante doch auch gehen oder nicht? Ich versteh leider die Fehlermeldung nicht...

Niclas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:32
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Niclas

Registriert seit: 21. Okt 2015
3 Beiträge
 
#6

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:54
Also würde
Delphi-Quellcode:
for m:=1 to 25 do
      begin
          Shape2.name:='Shape' + inttostr(m);
          Shape2.Destroy;
 Shape2.name:='';
      end;

      end;
gehen?

Oder so hier?
Delphi-Quellcode:
for m:=1 to 25 do
      begin
          Shape2.name:='Shape' + inttostr(m);
          Shape2.Destroy;
Shape2.TShape.Create;
      end;

      end;
Kann es im Moment leider nicht überprüfen (bin erst Morgen wieder am "Programier-"PC. )
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Auf Shapes mit Variablen zugreifen

  Alt 21. Okt 2015, 18:57
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 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