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.