Hallo,
Ich hab gleich zwei Fragen.
1. Wieso funktionert
Delphi-Quellcode:
procedure AddPanel;
var NewPanel: TPanel;
begin
NewPanel := TPanel.Create(Form1);
end;
?
2. Wie kann ich auf das neu erzeucgte Panel zugreifen, wenn ich einen Zeiger habe? So nach der Art:
Delphi-Quellcode:
var
Pointers: array[Byte] of Pointer;
PanelCount: Integer;
.
.
.
procedure AddPanel;
var NewPanel: TPanel;
begin
NewPanel := TPanel.Create(Form1);
Pointers[PanelCount] := @NewPanel;
Inc(PanelCount);
end;
(Den 2. Code hab ich jetzt nicht getestet)
Den Zeiger kann ich nicht mit (Pointers[x]^ as TPanel) oder TPanel(Pointers[x]^) in TPanel casten, da krieg ich ne Fehlermeldung. Müsste ich mir da nen Typ PPanel = ^TPanel definieren und den dann für das Array nehmen?
Außerdem gibts die Variable NewPanel ja nur in der Zeit, in der AddPanel ausgeführt wird. Trotzdem bleiben die ganzen Panels da.
Ich hab sowas bisher mit einem globalen array[Byte] of TPanel gemacht und das statt der lokalen Variable verwendet, aber elegant wäre anders...
Greetz
Snuffi