So, habe meinen Fehler gefunden (ich hatte geschrieben
bButton.OnClick := bButtonClick(bButton);) schon folgt der nächste gleich Zeile, korrigierter Source:
Zitat von
Delphi-Debugger:
[Error] Unit1.pas(222): Incompatible types: 'method pointer and regular procedure'
Frage: Was tun? Lt. Delphi-Hilfe:
Zitat von
Delphi-Hilfe:
Der Compiler hat einen Unterschied zwischen der Deklaration und der Verwendung einer Prozedur entdeckt.
Delphi-Quellcode:
program Produce;
type
ProcedureParm0 = procedure; stdcall;
ProcedureParm1 = procedure(VAR x : Integer);
procedure WrongConvention; register;
begin
end;
procedure WrongParms(x, y, z : Integer);
begin
end;
procedure TakesParm0(p : ProcedureParm0);
begin
end;
procedure TakesParm1(p : ProcedureParm1);
begin
end;
begin
TakesParm0(WrongConvention);
TakesParm1(WrongParms);
end.
Der Aufruf von TakesParm0 löst einen Fehler aus, weil der Typ ProcedureParm0 eine Prozedur stdcall erwartet, während WrongConvention mit der Aufrufkonvention register deklariert wurde. Außerdem wird der Aufruf von TakesParm1 fehlschlagen, weil die Parameterlisten nicht übereinstimmen.
Allerdings kann ich einen solchen Fehler nirgendsfinden...
Chris