![]() |
TStrings und Memo dumme Frage!
Hallo Experten!
Ich habe hier mal ne für mich nicht unverständliche Sache : wenn ich in ein 'stl' (TStrings) einen anders kopiere siehe Beispiel dann wird bei jeder Änderung von stl auch die das andere TStrings geänert warum?
Delphi-Quellcode:
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; var stl : TStrings; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin stl := Memo1.Lines; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Clear; end; procedure TForm1.Button2Click(Sender: TObject); begin stl.Add(Edit1.text); end; end. |
Re: TStrings und Memo dumme Frage!
Du hast es ja nicht kopiert, sondern die Referenz(Zeiger) darauf verwiesen
|
Re: TStrings und Memo dumme Frage!
Ich habe doch nur stl (TStrings) := Memo1.Lines (TStrings) kopiert? Oder wie sieht kopieren aus?
|
Re: TStrings und Memo dumme Frage!
Und stl und Memo.Lines sind Referenzen (Zeiger), welche nach der Zuweisung auf daselbe Objekt Zeigen.
Delphi-Quellcode:
stl.Assign( Memo1.Lines);
|
Re: TStrings und Memo dumme Frage!
Bleibt die Referenz solange erhalten wie die Anwendung läuft wenn sie von mir nicht geändert wird? Oder was kann die Referenz ändern?
|
Re: TStrings und Memo dumme Frage!
Eine Referenz ist ein Zeiger(variable). Sie bleibt bestehen, bis du sie auf Nil oder ein anderes Objekt setzt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz