![]() |
Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Hallo liebe Delphi Freunde,
ich möchte die Zeileninhalte eines Formulars(FrmMain.MmOutput.Lines[i]) mittels einer for Schleife auf ein anderes Formular übetragen.
Delphi-Quellcode:
Leider wird jedoch immer nur die erste Zeile in das andere Formular kopiert, auch wenn in mehreren Zeilen Text steht. Was mache ich da falsch?:oops:
procedure TFrmMain.BtnCreateClick(Sender: TObject);
var i: integer; NumberLines:Integer; begin Numberlines:=FrmMain.MmInput.Lines.Count; ShowMessage(IntToStr(NumberLines)); for i := 0 to Numberlines do begin FrmMain.MmOutput.Lines[i]:=FrmMain.MmInput.Lines[i]; end; end; Vielen Dank für eure Hilfe! |
AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Auf ein anderes Formular???
Delphi-Quellcode:
Wo denn auf ein anderes Formular?
FrmMain.{unwichtig} := FrmMain.{unwichtig}
|
AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Entschuldige da war ich etwas voreilig. Auf ein anderes "Memo" ist korrekt:MMOutput
|
AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Die Lines eines Memos sind quasi virtuell, weil diese vom Zeilenumbruch abhängen und der kann u.a. auch von der Breite der Komponente abhängen.
Ganz einfach geht das mit:
Delphi-Quellcode:
EDIT: Theoretisch sollte das funktionieren, aber du versuchst eine Zeile zuviel zu übertragen.
MmOutput.Text := MmInput.Text;
NumberLines = 10 0..10 => 11 |
AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Grundsätzlich greift man via
Delphi-Quellcode:
(in Wirklichkeit aber
.Lines[i]
Delphi-Quellcode:
) nur auf existierende Zeilen zu.
.Lines.Strings[i]
Wenn dein Code schon innerhalb der Klasse TFrmMain steht, dann greift man nicht über die globale Variable auf sich selber zu. (das ist sinnlos, unschön und vorallem fehleranfällig) Außerdem stimmte deine Zählung nicht, denn
Delphi-Quellcode:
ist falsch, da es keine Zeile mit dem Index "Count" gibt, da die letzte Zeile Count-1 ist, wenn man bei 0 anfängt mit zählen. (0 bis 3 = 4)
for i := 0 to Count
Wie man es schön und schnell zuweist, wurde schon genannt, aber hier noch das, was du eigentlich machen wolltest. - nimm Zeile aus MmInput - hänge diese Zeile an MmOutput an - und vorher lösche noch eventuell vorhandenen Text aus MmOutput
Delphi-Quellcode:
MmOutput.Lines.Clear;
for i := 0 to FrmMain.MmInput.Lines.Count - 1 do MmOutput.Lines.Add(MmInput.Lines[i]); // oder MmOutput.Lines.Assign(MmInput.Lines); // oder MmOutput.Lines.Text := MmInput.Lines.Text; // oder MmOutput.Text := MmInput.Text; |
AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Zitat:
Besser wäre es aber warscheinlich als "Master" eine Stringlist zu nutzen und von dieser aus die Memos zu befüllen. Aber dafür müßte man wissen, was überhaupt bezweckt wird. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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