Moin moin,
ich habe folgende Dummy Klasse und wundere mich gerade, warum das funktioniert. Ich hätte gerne gewusst warum so etwas funktioniert.
Beim debuggen ist FTest = nil und trotzdem gibt es keine Zugriffsverletzung und die Klassenfunktion wird ausgeführt.
Das dieses wohl nicht wirklich Sinn macht ist mir schon klar, mir geht es einzig nur darum, warum das funktioniert?!
Könnte mir das bitte jemand erklären?
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TDummyClass =
class
public
procedure Test(
var paStrString :
String);
end;
type
TForm1 =
class(TForm)
btn: TButton;
procedure btnClick(Sender: TObject);
private
{ Private-Deklarationen }
FTest: TDummyClass;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.btnClick(Sender: TObject);
var
str:
String;
begin
str := '
Test';
FTest.Test(str);
ShowMessage(str);
end;
{ TDummyClass }
procedure TDummyClass.Test(
var paStrString:
String);
begin
paStrString := paStrString + '
JA';
end;
end.