![]() |
Memo in Variable
Hi,
ich möchte ein Memo in eine Variable 'packen' und diese dann nutzen damit ein anderes Memo mit dem Inhalt gefüllt wird. Ich habe es bis jetzt mit einer Schleife ausprobiert und das sieht so aus:
Delphi-Quellcode:
Es funktioniert nicht wirklich und ich habe keine Lust die Memos erst als .txt zu speichern um sie dann im anderen Memo wieder zu laden..
procedure TFrmHaupt.ActBuchenExecute(Sender: TObject);
var memo, weitergabe : String; i, j : Integer; begin j := 0; for i := 10 downto 1 do begin memo := (Bestell.Lines[j]); ZuZahl.Lines[j] := (memo); j := j+1; end; end; Danke Luki :) |
AW: Memo in Variable
Delphi-Quellcode:
var
s: String; begin s := Memo1.Lines.Text; Memo2.Lines.Text := s; end; |
AW: Memo in Variable
Wie wärs mit
Delphi-Quellcode:
?
ZuZahl.Text := Bestell.Text;
So wie du es im Moment machst, würden die Daten umgekehrt herum im anderen Memo erscheinen. Wenn es so sein soll, dann versuch es mit
Delphi-Quellcode:
. Dann brauchst du auch nicht deine Variable
ZuZahl.Lines.Add(memo);
Delphi-Quellcode:
und musst diese auch nicht hochzählen.
j
PS: Ich ignorier den Beitrag von Popov mal :D |
AW: Memo in Variable
Ein ganzes Memo?
Du meinst NUR eine Zeile, also einen billigen String.
Delphi-Quellcode:
So, grundsätzlich geht das, ABER, du hast schonwieder die Fehlerbeschreibung vergessen.
var s: string; // Variable in irgendwas umbenannt, da es ja kein Memo ist.
j := 0; for i := 10 downto 1 do begin s := Bestell.Lines[j]; ZuZahl.Lines[j] := s; j := j + 1; end; // aber warum nicht einfach umrechen? for i := 10 downto 1 do begin s := Bestell.Lines[10 - i]; ZuZahl.Lines[10 - i] := s; end; // aber warum wurde nicht direkt i verwendet? for i := 0 to 9 do begin s := Bestell.Lines[i]; ZuZahl.Lines[i] := s; end; Und obwohl es mir schon was denken kann, was falsch ist: - Was geht nicht? - bzw. Wie geht es nicht? Was kommt raus und was erwartest du stattdessen? - Gibt es Fehlermeldungen und wen ja, welche gibt es? - Wenn es eine Exception gibt, welche Zeile gibt der Debugger an? [edit] Aber warum wurde nicht direkt i verwendet? Hab bei dem Code nicht gleich voll durchgesehn und dachte wu willst die Reihenfolge der Zeilen umdrehen. Die beste Lösung wurde zwar schon genannt
Delphi-Quellcode:
oder
Memo1.Text := Memo2.Text;
Delphi-Quellcode:
Aber die zeilenweise Lösung wäre auch gegangen, wenn man es "richtig" macht.
Memo1.Lines.Text := Memo2.Lines.Text;
|
AW: Memo in Variable
@Luki206: Du möchtest doch nicht wirklich ein Memo in eine Variable packen, sondern dessen Inhalt. Der wird durch das Property Lines repräsentiert, und das ist im Großen & Ganzen eine Stringliste. Würdest du wirklich das komplette Memo mit all seinen Properties in einer Variablen speichern wollen, wäre das ein Objekt vom Typ TMemo. Um den Inhalt eines Memo zu speichern, ist es aber nicht notwendig, das gesamte Objekt TMemo zu speichern.
Mit anderen Worten: Der Kommunikation unter Programmierern liegt nicht nur die Alltagssprache zugrunde, sondern zu einem wesentlichen Teil die entsprechende Fachsprache, die es erfordert, Sprachübereinkünfte dieses Fachbereichs zu erlernen und zu übernehmen, um sich verständlich machen zu können. |
AW: Memo in Variable
@Perlsau
Evtl. ja doch ... mal wörtlich die Anforderung umgesetzt:
Delphi-Quellcode:
es geht natürlich auch kürzer
var
LMemo : TMemo; begin // Memo in Variable packen LMemo := Memo1; // nutzen um anderes Memo mit dem Inhalt füllen Memo2.Lines.Assign( LMemo.Lines ); // alternativ geht auch Memo2.Lines := LMemo.Lines; end;
Delphi-Quellcode:
Wenn eh nur der Inhalt interessant ist, dann wäre auch denkbarMemo2.Lines := Memo1.Lines;
Delphi-Quellcode:
Das man der Eigenschaft
var
LStrings : TStrings; begin LStrings := TStringList.Create; try LStrings.Assign( Memo1.Lines ); Memo2.Lines := LStrings; finally LStrings.Free; end; end; ![]() ![]()
Delphi-Quellcode:
procedure TCustomMemo.SetLines( Value : TStrings );
begin FLines.Assign( Value ); end; |
AW: Memo in Variable
Ok, ich danke euch ;) Es funktioniert jetzt :)
@Perlsau: Ich versuche das nächste mal ein wenig genauer meine Frage zu stellen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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