Autor Beitrag
piffy
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 21.09.10 10:43 
Guten Tag

ich haben ein program mit vielen panels und ich möchte die position von ihnen in zwei array schreiben.
was ich versucht habe aber nicht geht ist folgendes:

for i := 1 to 50 do
begin
x_arr[i] := paneli.left;
y_arr[i] := paneli.top;

das panel"i" mag er nicht.


2te frage am rande
kann man wärend ein program läuft ein neues panel erzeugen, wenn man vorher einen button mit z.B. creat.panel oder so ähnlich erstellt???
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 21.09.10 11:31 
Wenn die Panels panel1 usw. heissen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var 
  pan: TPanel;
  ...
  for i := 1 to 50 do
  begin
    pan := ( FindComponent( 'panel'+IntToStr(i) as TPanel);
    x_arr[i] := pan.left;
    y_arr[i] := pan.top;
    ...

_________________
Markus Kinzler.

Für diesen Beitrag haben gedankt: piffy
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 21.09.10 11:36 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TArr=Array[1..50of TRect;
var
 Arr:TArr;
 p:TPanel;
 i:Integer;
begin
for i := 1 to 50 do
begin
  p := TPanel(FindComponent('Panel' + IntToStr(i)));
  if Assigned(p) then arr[i] := p.BoundsRect;

end
end;

Für diesen Beitrag haben gedankt: piffy
piffy Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 21.09.10 11:51 
vieln dank

die zeile " pan := TPanel(FindComponent('Panel' + IntToStr(i)));" hat mir gefehlt.
jetzt gehts :D
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Di 21.09.10 13:23 
user profile iconpiffy hat folgendes geschrieben Zum zitierten Posting springen:

kann man wärend ein program läuft ein neues panel erzeugen, wenn man vorher einen button mit z.B. creat.panel oder so ähnlich erstellt???


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  p: TPanel;
begin
  //Panel erstellen
  //Wenn als Owner Self angegeben wird, 
  //wird das Panel beim zerstören der Form automatisch freigegeben. 
  //Wenn du nil übergibst, musst du das Panel spätestens 
  //beim Beenden des Programms manuell mit .Free oder FreeAndNil(Panel); freigeben.
  p := TPanel.Create(Self);

  //Panel einer Form zuweisen
  p.Parent := Form1; 

  //Weitere Eigenschaften setzen...
  p.Caption := 'Mein Titel';
  p.Left := 100;
  //...
end;

Für diesen Beitrag haben gedankt: piffy