Jede Prozedur ist eine Methode. Eine Prozedur statt einer Methode zu verwenden, ist somit völlig unmöglich.
Das stimmt nicht. Vielleicht ist die engliche Übersetzung "member function" statt "method" besser verständlich. Eine Methode ist explizit bei objektorientierten Sprachen eine innerhalb eines Objekts verwendete Funktion oder Prozedur, sprich in Delphi eine innerhalb einer Klasse deklarierte Funktion oder Prozedur. Der Unterschied ist entscheidend.
Stimmen tut: Jede Methode ist entweder eine Prozedur oder eine Funktion, aber eben innerhalb einer Klasse.
// EDIT:
Ach ja, deshalb bekommst du ja auch die entsprechende Fehlermeldung bei diesem Code:
Delphi-Quellcode:
procedure Test(Sender: TObject);
begin
end;
procedure TForm296.FormCreate(Sender: TObject);
begin
OnClick := Test;
end;
Zitat:
E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Wenn man den Unterschied zwischen Methode und Prozedur nicht kennt, versteht man diese Fehlermeldung natürlich ggf. nicht.