Der erwähnte Fehler ("Der Quelltext konnte nicht gefunden werden, um die Methode ... hinzuzufügen. "END." oder "INITIALIZATION" wurde im Quelltext der
Unit nicht gefunden") kommt bei Delphi 2009 regelmäßig dann vor, wenn eine Klassenmembervariable eine record-Definition enthält (was eigentlich zulässig ist und vom Compiler auch akzeptiert wird):
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
private
{ Private-Deklarationen }
m_Test:
record
TestVar: Integer;
end;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Wenn man nun z. B. eine ButtonClick-Methode schreiben will, kommt die genannte Fehlermeldung. Dies scheint ein Bug in Delphi 2009 zu sein.
Wenn der Record außerhalb (vor) der Klasse definiert wird, klappts:
Delphi-Quellcode:
type
TTest = record
TestVar: Integer;
end;
TForm1 = class(TForm)
Button1: TButton;
private
{ Private-Deklarationen }
m_Test: TTest;
public
{ Public-Deklarationen }
end;
Hat mich schon ein paar mal aufs Kreuz gelegt (auch heute schon), so dass ich es hier der Vollständigkeit halber erwähne.