Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Auf Dynamisch erstellte Labels zugreifen (https://www.delphipraxis.net/79318-auf-dynamisch-erstellte-labels-zugreifen.html)

Mavarik 20. Okt 2006 11:27

Re: Auf Dynamisch erstellte Labels zugreifen
 
hmm

Du erzeugst 6561 Labels!

Frank

chrisw 20. Okt 2006 11:27

Re: Auf Dynamisch erstellte Labels zugreifen
 
Das sind ja 6561 Label, die Du erzeugst ! Für Sudoko ein bisschen zu viel, oder?


Davon legst du aber nur 81 im Array ab !


Was willst Du denn damit ?

150gozilla 20. Okt 2006 11:29

Re: Auf Dynamisch erstellte Labels zugreifen
 
Zitat:

Zitat von chrisw
Das sind ja 6561 Label ! Für Sudoko ein bisschen zu viel, oder?


Das stimmt.

Wie könnte ich die Schleifen am besten verschachteln ?

chrisw 20. Okt 2006 11:32

Re: Auf Dynamisch erstellte Labels zugreifen
 
Die Schleife mit dem index2 einfach weglassen und einen Zähler in der inneren Schleife von 1 bis 81 zählen (inc())

Mavarik 20. Okt 2006 11:32

Re: Auf Dynamisch erstellte Labels zugreifen
 
Zitat:

Zitat von 150gozilla
Wie könnte ich die Schleifen am besten verschachteln ?

Delphi-Quellcode:
 SetLength(Labels,81);
 index2 := 0;

  for i:=1 to 9 do
  begin
   for j:= 1 to 9 do
   begin
     Labels[index2]:=TLabel.Create(self);
     Labels[index2].Top := ((i-1)* lg)+13;
     Labels[index2].Parent:= Form1;
     Labels[index2].AutoSize := false;
     Labels[index2].Font.Size := 12;
     Labels[index2].Left := 10 + lg *(j-1);
     Labels[index2].Height:= lg;
     Labels[index2].Width:=lg;
     Labels[index2].Caption:= IntToStr(i)+','+(IntToStr(j));
     Labels[index2].Alignment := tacenter;
    inc(index2);
   end;
  end;

Frank :coder:

150gozilla 20. Okt 2006 11:39

Re: Auf Dynamisch erstellte Labels zugreifen
 
Zitat:

Zitat von Mavarik
Zitat:

Zitat von 150gozilla
Wie könnte ich die Schleifen am besten verschachteln ?

Delphi-Quellcode:
 SetLength(Labels,81);
 index2 := 0;

  for i:=1 to 9 do
  begin
   for j:= 1 to 9 do
   begin
     Labels[index2]:=TLabel.Create(self);
     Labels[index2].Top := ((i-1)* lg)+13;
     Labels[index2].Parent:= Form1;
     Labels[index2].AutoSize := false;
     Labels[index2].Font.Size := 12;
     Labels[index2].Left := 10 + lg *(j-1);
     Labels[index2].Height:= lg;
     Labels[index2].Width:=lg;
     Labels[index2].Caption:= IntToStr(i)+','+(IntToStr(j));
     Labels[index2].Alignment := tacenter;
    inc(index2);
   end;
  end;

Frank :coder:

Dankeeeeeeee, das klappt 100%ig.

Danke an alle die mir geholfen haben :)
Hab wieder was gelernt =)
Danke nochmal =)

chrisw 20. Okt 2006 11:43

Re: Auf Dynamisch erstellte Labels zugreifen
 
Wobei hier ein dynamisches Array eigentlich keinen sonderlichen Sinn verfolgt (ein statisches hätt's auch getan, am besten 2 dimensional (array [1..9,1..9] of TLabel))
a la
Delphi-Quellcode:
const MaxWidthHeight = 9;
...
Labels : array [1..MaxWidthHeight ,1..MaxWidthHeight ] of TLabel;
....

for i:=1 to MaxWidthHeight do
  begin
   for j:= 1 to MaxWidthHeight do
   begin
     Labels[i,j]:=TLabel.Create(self);
     Labels[i,j].Top := ((i-1)* lg)+13;
     Labels[i,j].Parent:= Form1;
     Labels[i,j].AutoSize := false;
     Labels[i,j].Font.Size := 12;
     Labels[i,j].Left := 10 + lg *(j-1);
     Labels[i,j].Height:= lg;
     Labels[i,j].Width:=lg;
     Labels[i,j].Caption:= IntToStr(i)+','+(IntToStr(j));
     Labels[i,j].Alignment := tacenter;
   end;
  end;



Ist mglw später einfacher anzusprechen !!!

hoika 20. Okt 2006 13:39

Re: Auf Dynamisch erstellte Labels zugreifen
 
Hallo,

noch zum Zugriff.
Beim Erzeugen kann man ja Namen selber vorgeben

Label.Name:= 'Label_Suduko_1'.

Der Zugriff erfolgt dann über TLabel(FindComponent('Label_Suduko_1'))


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 2 von 2     12   

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