AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Memo Bricht in Lines um

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

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

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 06: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
73 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 07: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.555 Beiträge
 
Delphi 7 Professional
 
#3

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 10: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
TomyN

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

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 19:23
Wenn dem so ist, warum passiert dann mit diesem Code
Code:
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    lineIndex: Integer;
    //theList:  TStringList;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.lines.Add('The first line is a long line. Let us see what will happen');
  lineIndex:= Memo1.Lines.Add('This is the line of interest');
  Memo1.Lines.Add('******END******');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  memo1.Lines[lineIndex]:= IntToHex(Random($1000),4) + ' New Text for the Test. Good Luck';
end;

end.
Das hier: https://www.youtube.com/watch?v=Cgy8GVSaJUc
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
 
#5

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 19:53
Ein Memo hat die wunderliche Eigenschaft WordWrap.
Irgendwie habe ich es so verstanden, daß wordwrap immer True sein soll, sonst wäre es ja auch zu einfach.

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
267 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 19:55
Das Video ist mit Wordwrap := TRUE. Ansonsten werden halt nur die Anfänge der Zeilen angezeigt..
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: Memo Bricht in Lines um

  Alt 11. Jul 2019, 19:59
Nur so als Hinweis:

Es gibt einen Unterschied zwischen VCL TMemo und FMX TMemo .

Bei VCL ist in der Lines -Eigenschaft der Inhalt analog zur Anzeige. (Das kann man auch schon zur DesignTime sehen. Lines Eigenschaft bearbeiten, schließen und wieder zum Bearbeiten öffnen).

Bei FMX wird die Lines-Eigenschaft durch WordWrap nicht verändert.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#8

AW: Memo Bricht in Lines um

  Alt 12. Jul 2019, 14:33
Das Video ist mit Wordwrap := TRUE. Ansonsten werden halt nur die Anfänge der Zeilen angezeigt..
Genau das ist auch der Sinn von WordWrap in seinem Ursprung.

Wenn WordWrap = false, dann werden von allen Zeilen die Anfänge angezeigt, bis halt die Breite des Memos erreicht ist, der Rest befindet sich quasi rechts vom rechten Rand des Memos.

WordWrap = true sorgt jedoch dafür, dass man alles sehen kann, wenn also in einer Zeile der Text eigentlich breiter ist, als die zur Anzeige zur Verfügung stehenden Fläche, so wird an einer geeigneten Stelle links vom rechten Rand ein Zeilenumbruch eingefügt, um die Anzeige des vollständigen Textes zu ermöglichen.

Das Video zeigt also exakt, wie ein Memo mit WordWrap = True funktionieren soll, es zeigt exakt das gewünschte Verhalten.
  Mit Zitat antworten Zitat
TomyN

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

AW: Memo Bricht in Lines um

  Alt 13. Jul 2019, 10:10
Also ich würde ein anderes Verhalten erwarten.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  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 00:37 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