Ich habe bei Delphi-Tutorials ein Beispiel gefunden, wie man dynamisch einen Button erzeugt.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
procedure Button2Click(Sender: TObject);
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
Button: TButton;
begin
Button:=TButton.Create(Self);
Button.Parent := Self;
Button.Caption := 'Alter Titel';
Button.Left := 100;
Button.Top := 100;
Button.OnClick := Button2Click;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Sender is TButton then
TButton(Sender).Caption:='Neuer Titel';
end;
initialization
{$I unit1.lrs}
end.
Das läuft unter Turbo-Delphi anstandslos, unter lazarus bringt er bei der Zeile
Button.OnClick := Button2Click;
die Meldung:
Wrong number of parameters specified for call to "Button2Click"
Dass die Anzahl Parameter nicht stimmt kann ich nachvollziehen, bloss was muss ich denn als Parameter mitgeben, damit es funktioniert?
Eberhard