Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#8
  Alt 2. Jan 2003, 15:36
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
  Mit Zitat antworten Zitat