Thema: Delphi Sender als const?

Einzelnen Beitrag anzeigen

Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: Sender als const?

  Alt 25. Feb 2005, 06:25
Zitat von dizzy:
Ein var dürfte im Übrigen keinen Unterschied zur modifikatorlosen Deklaration machen, da eh nur eine Referenz übergeben wird
Doch es macht einen Unterschied. Du kannst nämlich dann ein neues Objekt zurückgeben.

Beispiel:

Delphi-Quellcode:
procedure Test(sender: TObject);
begin
  Sender:=nil;
end;

procedure Test2(var sender: TObject);
begin
  Sender:=nil;
end;

var
  TestObject: TObject;
begin
  TestObject:=TObject.Create;

  Test(TestObject); // Nach dem Aufruf zeigt TestObject immer noch auf das erstellte Object

  Test2(TestObject); // Nach dem Aufruf zeigt TestObject auf nil.
end.
1. Probiere es doch einfach aus, ob du bei einem TNotfifyEvent ein const einbauen kannst. Ich glaube nämlich nicht, da sich die Aufrufe intern unterscheiden. Und bei Objekten macht es keinen Unterschied. Mit Const übergibt er die 4 Bytes Referenz auf die Variable ohne const übergibt er die 4 Bytes Referenz auf das Objekt selber. Du hast also nichts gewonnen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat