Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array of TShape (https://www.delphipraxis.net/64534-array-tshape.html)

nobody_anfänger 4. Mär 2006 21:36


array of TShape
 
ich weiß ihr werdet mich ehr oder weniger für dumm erklären, aber ich hab keine ahnung wie ich die erstelltetn Shapes anzeigen soll, wenn ich sie als arry erstellt hab.

Nikolas 4. Mär 2006 21:56

Re: array of TShape
 
Herzlich willkommen in der DP

Wenn list dein array ist, dann einfach per

Delphi-Quellcode:
list[0].visible:= true;
list[0].top:= 45;
Wie sieht denn dein Code bis jetzt aus?

nobody_anfänger 4. Mär 2006 22:01

Re: array of TShape
 
begin
for i:=1 to 47 do
begin
SKreis[i].visible:=true;
SKreis[i].width:=30;
Skreis[i].Height:=30;
SKreis[i].brush.color:=clred;
SKreis[i].Top:=i;
SKreis[i].left:=i;
end;
end;

das problem ist jetzt nur, dass wenn ich mein prog ausführe, das prog abstürzt, sobald ich die prozedur starte.

inherited 5. Mär 2006 09:56

Re: array of TShape
 
:party: :party: :party: HERZLICH WILLKOMMEN IN DER DELPHI-PRAXIS :party: :party: :party:

Zitat:

Zitat von nobody_anfänger
begin
for i:=1 to 47 do
begin
SKreis[i].visible:=true;
SKreis[i].width:=30;
Skreis[i].Height:=30;
SKreis[i].brush.color:=clred;
SKreis[i].Top:=i;
SKreis[i].left:=i;
end;
end;

1. lässt sich das folgendermaßen abkürzen:
Delphi-Quellcode:
SKreis[i].SetBounds(i,i,30,30)
2. Hast du wahrscheinlich vergessen die Shapes zu erzeugen, am anfang muss
Delphi-Quellcode:
SKreis[i]:= TShape.Create;
stehen

Also am ende dann so:
Delphi-Quellcode:
for i:=1 to 47 do
  begin
    SKreis[i]:= TShape.Create;
    SKreis[i].SetBounds(i,i,30,30);
    SKreis[i].brush.color:=clred;
  end;

nobody_anfänger 5. Mär 2006 10:08

Re: array of TShape
 
jetzt hab ich das problem, das der fehler not enought parapeters angezeigt wird.

Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
var i:integer;
begin
  for i:=1 to 47 do
  begin
    SKreis[i]:= TShape.Create;
    SKreis[i].SetBounds(i,i,30,30);
    SKreis[i].brush.color:=clred;
  end;
end;

inherited 5. Mär 2006 10:29

Re: array of TShape
 
Dann so: SKreis[i]:=TShape.Create(self);

nobody_anfänger 5. Mär 2006 10:41

Re: array of TShape
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to 47 do
  begin
    SKreis[i]:=TShape.Create(self);
    SKreis[i].SetBounds(i*2,i*2,30,30);
    SKreis[i].brush.color:=clred;
    SKreis[i].Visible:=True;
    repaint;
  end;
end;
es lässt sich jetzt compilieren, aber es ist trotz des repaints nichts zu sehen auf dem bildschirm. warum?

Waldteufel 5. Mär 2006 10:46

Re: array of TShape
 
Hi nobody_anfänger.

Da fehlt imho noch ein
Delphi-Quellcode:
SKreis[i].Parent := self;
;-)

nobody_anfänger 5. Mär 2006 10:48

Re: array of TShape
 
danke, jetzt funtz es.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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