ich bin gerade fleißig dabei, Delphi-Tutorials durchzuarbeiten, bin nun aber an einer Stelle auf ein Problem gestoßen. Ich möchte (wie hier: Tutorial im Abschnitt "Ereignisse" fast ganz unten beschrieben) einem Ereignis eine Methode zuweisen. Im betreffenden Fall soll ein Button (name: Button1) erzeugt werden und im OnCreate-Event des Formulars soll dem OnClick-Ereignis des Buttons eine Methode zugewiesen werden. Im Quelltext sieht das dann so aus, nachdem man die im Tutorial angegebenen Schritte abarbeitet:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
procedure doSomething(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.OnClick := doSomething; // HIER ERSCHEINT EIN FEHLER BEIM KOMPILIEREN
end;
procedure TForm1.doSomething(Sender: TObject);
begin
ShowMessage('Foo');
end;
end.
Wenn ich das also richtig verstehe, sagt mir der Kompiler, dass ich in der betreffenden Zeile doSomething aufrufe, ohne einen Parameter vom Typ TObject (wie in der Definition von doSomething gefordert) aufrufe. Ich habe schon etwas herumprobiert und z. B. versucht, Button1 als Parameter zu übergeben, aber das hat leider auch nicht funktioniert.Error: Wrong number of parameters specified for call to "doSomething"
Was habe ich falsch gemacht?