Hallo zusammen,
bin noch sehr neu in der Delphi und
OOP-Welt und ich schlage mich schon das ganze Wochenende mit folgendem Problem herum:
Ich möchte in ein TForm dynamisch zur Laufzeit Frames (in Unit2 definiert) auf ein OnClick- Ereignis einbinden, d.h. mit jedem Click soll eine neue Zeile (Frame) eingeblendet werden.
Unit 1:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
MyPanel: TPanel;
i: Integer;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
MyFrame: TFrame1;
begin
MyFrame := TFrame1.Create(self);
MyFrame.Parent := self;
end;
end.
Einmalig klappt das auch sehr schön, beim zweiten Mal bekomme ich dann aber einen Fehler: 'A component named Frame1 already exists'.
Wenn ich einen ähnlichen Aufruf, aber statt TFrame1 beispielsweise TPanel nehme klappt es wunderbar.
Und dann gleich noch ein weiteres Problem im Unit2 (Frame). Dort habe ich einen Button eingebaut, mit dem der Frame wieder gelöscht werden soll (mittels free). auch hier bekomme ich eine Fehler bei Ausführung:
Access Violation
Delphi-Quellcode:
type
TFrame1 = class(TFrame)
delete: TButton;
procedure deleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TFrame1.deleteClick(Sender: TObject);
begin
self.Free;
end;
end.
Ich bin für jede Idee/Anregung dankbar
Hans