AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

Ein Thema von Mojito · begonnen am 30. Okt 2012 · letzter Beitrag vom 30. Okt 2012
Antwort Antwort
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#1

Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 00:28
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:
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;
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?

Vielen Dank für eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 00:33
Auf ein anderes Formular??? FrmMain.{unwichtig} := FrmMain.{unwichtig} Wo denn auf ein anderes Formular?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#3

AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 00:36
Entschuldige da war ich etwas voreilig. Auf ein anderes "Memo" ist korrekt:MMOutput
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 00:45
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:
MmOutput.Text := MmInput.Text; EDIT: Theoretisch sollte das funktionieren, aber du versuchst eine Zeile zuviel zu übertragen.

NumberLines = 10
0..10 => 11
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Okt 2012 um 00:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 01:27
Grundsätzlich greift man via .Lines[i] (in Wirklichkeit aber .Lines.Strings[i] ) nur auf existierende Zeilen zu.

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 for i := 0 to Count 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)

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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Okt 2012 um 11:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Memo.Lines[i]-> Zeileninhalt auf anderes Formular übertragen

  Alt 30. Okt 2012, 10:58
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.
Da er ja ausdrücklich Zeilen geschrieben hat, ist der Ansatz über Lines zu gehen, erst einmal richtig.
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz