Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Panel verschieben


fux - Di 03.12.02 18:39
Titel: Panel verschieben
huhu, ich hab folgendes problem:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure move_right;
var P1: TPanel;
begin
p1.left:=p1.left+5;
end;

procedure TForm1.moverightExecute(Sender: TObject);
begin
move_right;
end;

jetzt verschiebt die procedure allerdings nicht das panel, was mir eigentlich logisch erschien, sondern die ganze form? warum? ich will doch das panel bewegen...

(04.12. 08:36 Tino) Titel geändert.


Klabautermann - Di 03.12.02 19:01

Hallo fux,

das liegt dadran, das du kein Panel hast. Mit der Variablendeklaration

Quelltext
1:
var P1: TPanel;                    

deklarierst du nur einen Zeiger auf ein solches.
Wenn du ein Panel, welches schon auf deinem Form existiert verschieben wilst, dann musst du es namentlich ansprechen. Folgendes Beispiel geht davon aus, das es Panel1 heißt:

Quelltext
1:
2:
3:
4:
procedure move_right;
begin
panel1.left:=panel11.left+5;
end;


Gruß
Klabautermann


Christian S. - Di 03.12.02 19:22

Müsste es nicht eigentlich so:


Quelltext
1:
2:
3:
4:
procedure TForm1.move_right; 
begin 
panel1.left:=panel11.left+5; 
end;


oder so

Quelltext
1:
2:
3:
4:
procedure move_right; 
begin 
Form1.panel1.left:=Form1.panel11.left+5; 
end;


heißen?


Klabautermann - Di 03.12.02 19:27

Hi,

du hast recht Peter Lustig.


fux - Di 03.12.02 19:28


Quelltext
1:
2:
3:
4:
procedure move_right;
begin
Form1.panel1.left:=Form1.panel1.left+5;
end;


das isset! es funktioniert :D

thx :)