Doch genau das tun sie, wenn du es so definierst. Wenn etwas nur zu einem Objekt gehören soll dann muss du das als Feld des Objektes definieren:
Delphi-Quellcode:
TAuto = class
private
fRad1,
fRad2,
fRad3,
fRad4: TRad;
public
procedure Fahren;
end;
Ist in diesem Fall aber egal weil du bei jedem Aufruf der
procedure TButtonNames.LinkProcedure1(linkedProcedure: TLinkedProcedure);
immer wieder über deine Referenz drüberbügelst. Dass du die Variablen unterhalb von
implementation
definierst sorgt nur dafür, dass außerhalb der
Unit keiner darauf zugreifen kann.
Kleiner Test gefällig?
Delphi-Quellcode:
TTest =
class
public
procedure Test;
end;
TForm2 =
class(TForm)
procedure FormCreate(Sender: TObject);
end;
implementation
var
globalObj: TObject;
procedure TForm2.FormCreate(Sender: TObject);
var
vT1, vT2: TTest;
begin
vT1 := TTest.Create;
vT2 := TTest.Create;
vT1.Test;
vT2.Test;
end;
{ TTest }
procedure TTest.Test;
begin
if assigned(globalObj)
then
raise Exception.Create('
Oha')
else
globalObj := TObject.Create;
end;