AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Memo Bricht in Lines um

Ein Thema von TomyN · begonnen am 10. Jul 2019 · letzter Beitrag vom 13. Jul 2019
Antwort Antwort
Seite 1 von 2  1 2   
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
249 Beiträge
 
Delphi 10.3 Rio
 
#1

Memo Bricht in Lines um

  Alt 10. Jul 2019, 20:36
Also,
eigentlich ist es ganz einfach.
Ich habe ein Memo, dem ich mit Add verschiedene Strings zuweise.
Code:
myMemo.Clear;
myMemo.Lines.Add('First Line');
i:= myMemo.Lines.Add('Something important');
myMemo.Lines.Add('***END***');
Nun möchte ich später irgendwann den zweiten Eintrag ersetzen, das mache ich ganz simple mit

Code:
myMemo.Lines[i]:= 'Even more important';
Das funktioniert auch wunderbar, solange das Memo keinen Zeilenumbruch macht, also wenn entweder der Text kurz genug ist oder myMemo.wordWrap auf FALSE gesetzt ist.
Im Netz finde ich immer nur den Hinweis, dass ein Umbruch im Memo keine Auswirkung auf die Lines hat, aber irgendwie funktioniert das nicht.
Übersehe ich was?
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Memo Bricht in Lines um

  Alt 10. Jul 2019, 20:48
Hallo,
ich würde das Memo nur zur Anzeige benutzen
und die Daten in einer StringList vorhalten.

Das Ersetzen erfolgt dann in der StringList
und per Memo.Lines.Assign dann zurück ins Memo.
Heiko
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
249 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Memo Bricht in Lines um

  Alt 10. Jul 2019, 20:58
Hi

Danke für den Tip. Das scheint einwandfrei zu funktionieren.
Bin aber dennoch etwas verwundert über das Verhalten des Memos.

Tomy
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Memo Bricht in Lines um

  Alt 10. Jul 2019, 22:22
Bin aber dennoch etwas verwundert über das Verhalten des Memos.
Da es sich um eine Komponente zur Datenanzeige handelt, ist dieses Verhalten eigentlich irrelevant.
Relevant ist das Verhalten der Struktur, die der Datenhaltung dient, und da gibt es keine Möglichkeit von außen einzugreifen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
249 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Memo Bricht in Lines um

  Alt 10. Jul 2019, 22:31
Naja, nach meinem Verständnis bietet das Memo schon auch die Möglichkeit der Dateneingabe und auch einer Verwaltung ( Insert etc.. ) der zugewiesenen Daten, für mich schon Anzeichen einer 'Datenhaltung/Verwaltung'.

Ist halt Philosophie. Was mich wirklich wundert ist, dass im Netz immer behauptet wird, das die Anzeige die Stringlist (Lines) nicht verändern würde. Aber selbst bei einer Basisaufgabe einer Datenanzeige, nämlich der Reaktion auf eine geänderte Größe funktioniert diese Datenanzeigekomponente nicht korrekt....
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  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 Bricht in Lines um

  Alt 10. Jul 2019, 22:45
Was mich wirklich wundert ist, dass im Netz immer behauptet wird, das die Anzeige die Stringlist (Lines) nicht verändern würde.
Zum einen ist die Wahrheit nicht demokratisierbar, will sagen wenn 99% der postings behaupten, das es bei Sonnenschein und einer Lufttemperatur von 25°C schneit ist das trotzdem Blödsinn.
Zum anderen werden die Daten, die angezeigt werden können, in einer TStrings kompatiblen Struktur abgelegt. das ist nicht dasselbe wie TStringlist!
(OK ist korinthenkackerisch verleitet abernicht zu vorschnellen Schlüssen)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (10. Jul 2019 um 22:47 Uhr) Grund: tippfehler
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
970 Beiträge
 
Delphi 6 Professional
 
#7

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 05:19
Hmm...

Damit ein Memo die Zeilen NICHT an der sichtbaren Breite umbricht, stelle doch mal 'ScrollBars' auf 'ssBoth'...

Damit versucht dann das Memo die Textzeile komplett anzuzeigen und bricht erst sehr spät um..
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
249 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 07:53
[

Zum anderen werden die Daten, die angezeigt werden können, in einer TStrings kompatiblen Struktur abgelegt. das ist nicht dasselbe wie TStringlist!
(OK ist korinthenkackerisch verleitet abernicht zu vorschnellen Schlüssen)

Gruß
K-H
Das Problem ist nicht die Nutzung von TStrings Lines ist ein TStrings-Objekt, so dass die TStrings-Methoden für Lines verwendet werden können, um Bearbeitungen, wie Zählen der Textzeilen sowie Hinzufügen, Löschen und Ersetzen von Zeilen, durchführen zu können. steht in der Dokumentation. Sondern das Problem ist, dass TMemo Strings nicht zum speichern der Daten sondern zum speichern der Anzeige nutzt.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
DenkDirNix

Registriert seit: 13. Dez 2018
69 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 08:17
In einem TRichEdit konnte ich dieses Problem umgehen. Das sollte im TMemo analog funktionieren:

Code:
Memo.Lines.BeginUpdate;
Memo.WordWrap := false;
Memo.Lines[i] := ...
Memo.WordWrap := true;
Memo.Lines.EndUpdate;
Bin aber nicht sicher, wie sich das bei sehr großen Datenmengen auf die Laufzeit auswirkt.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.491 Beiträge
 
Delphi 7 Professional
 
#10

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 11:03
Ein Memo hat die wunderliche Eigenschaft WordWrap.

Wenn man die im Objektinspektor (oder sonstwo im Quelltext) auf false setzt, findet keine automatischer Zeilenumbruch statt.

Der daraus resultierende Umbruch findet nur in der Anzeige statt. Auf die Eigenschaft von Lines (vom Typ TStrings) hat das keinen Einfluss.

Zitat von Delphi 7 Hilfe:
VCL-Referenz
WordWrap (Eigenschaft von TCustomMemo)

TCustomMemo Siehe auch

Die Eigenschaft WordWrap bestimmt, ob der Text im Eingabefeld am rechten Rand umbrochen wird.

Delphi-Syntax:

property WordWrap: Boolean;

C++ Syntax:

__property bool WordWrap = {read=FWordWrap, write=SetWordWrap, default=1};

Beschreibung

Ist WordWrap auf true gesetzt, wird der Text im Eingabefeld entsprechend der Breite des Client-Bereichs am rechten Rand umbrochen. Der Umbruch wird lediglich auf dem Bildschirm angezeigt, der Text enthält keinerlei Zeilenumbrüche, die nicht explizit eingegeben wurden. Hat WordWrap den Wert false, wird eine separate Zeile nur dort angezeigt, wo explizit ein Zeilenumbruch in den Text eingefügt wurde.

Hinweis: Hat WordWrap den Wert true, wird keine horizontale Bildlaufleiste für das Eingabefeld benötigt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:37 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