Einzelnen Beitrag anzeigen

CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#5

AW: Events und SpeicherLeaks bei dynamischen Buttons

  Alt 14. Jul 2015, 13:34
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;
Sebastian
Das kann ja wohl nicht var sein!
  Mit Zitat antworten Zitat