Einzelnen Beitrag anzeigen

tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Memo.Clear zeigt keinen Effekt - Falsche Anzeige

  Alt 14. Dez 2005, 13:44
Bei Klassen dürfte das eigentlich keinen Unterschied machen. Denn das, was du da bekommst ist ja ein Zeiger. Die lokale Kopie ist also in Wirklichkeit ein zweiter Zeiger. Das heißt der Unterschied ist hier folgender:

Delphi-Quellcode:
procedure Test1(x: TObject);
begin
  x := nil;
  // x ist nil
end;
procedure Test2(var x: TObject);
begin
  x := nil;
end;
var a: TObject;
begin
  a := TObject.Create; // Zeigt jetzt an Adresse xyz
  Test1(a); // a zeigt immer noch auf xyz
 Test2(a); // Jetzt ist auch a auf nil
end;
Alle Änderungen, die du am Objekt machst werden also auch ohne var übernommen. (Sieht man ja leicht z.B. am Sender-Parameter im TNotifyEvent).
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat