Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Formatierte Textausgabe in TMemo (https://www.delphipraxis.net/180475-formatierte-textausgabe-tmemo.html)

Konstantin H. 22. Mai 2014 15:32

Formatierte Textausgabe in TMemo
 
Hallo DP,

folgendes Problem, ich habe massenweise Daten, die in einem Memo angezeigt werden sollen. Ich arbeite mit 4 array[1..50] of string:
Delphi-Quellcode:
TMemo.Lines.ADD(array_1[i] + array_2[i] + array_3[i] + array_4[i])
Gibt es hier (wie zB in C) eine möglichkeit formatiert strings auszugeben? Also eine Tabelle mit Text "zeichnen". Die länge der einzelnen strings ist unbekannt und kann bis zu 35 Zeichen lang sein. Kann mir vllt jmd behilflich sein?

MfG Konstantin

Jumpy 22. Mai 2014 15:52

AW: Formatierte Textausgabe in TMemo
 
Wäre da nicht eine Listbox oder Listview oder ein StringGrid die bessere Komponente?

DeddyH 22. Mai 2014 16:06

AW: Formatierte Textausgabe in TMemo
 
Ich würde da auch eher zur TListView (Stil vsReport) tendieren.

bcvs 22. Mai 2014 16:08

AW: Formatierte Textausgabe in TMemo
 
Oder ein TRichedit, wenns denn unbedingt Memo-Like sein soll. Da könnte man dann entsprechende Tabs setzen.

Wobei ich auch ein ListView oder Stringgrid bevorzugen würde.

Dejan Vu 22. Mai 2014 17:04

AW: Formatierte Textausgabe in TMemo
 
Oder eben einfach ein TMemo mit einem Courier-Zeichensatz (Hauptsache Fixed-Space).
Und dann die Strings formatiert eintragen, sagen wir so:
Delphi-Quellcode:
myMemo.Add (Format('%20s | %20s | %35s |', [a,b,c]));
Das geht auch einfacher, aber da Du C kennst, sollte Format (ähnlich 'sprintf') kein großes Problem darstellen.
Bezüglich der Formatierungsanweisungen musst Du mal in die Hilfe schauen. Auch, ob das 'Format' oder anders heißt, weiß ich nicht genau.

hathor 22. Mai 2014 18:02

AW: Formatierte Textausgabe in TMemo
 
Liste der Anhänge anzeigen (Anzahl: 1)
...oder nimm 4 Memos nebeneinander.

Dejan Vu 22. Mai 2014 18:04

AW: Formatierte Textausgabe in TMemo
 
Zitat:

Zitat von hathor (Beitrag 1259839)
...oder nimm 4 Memos nebeneinander.

Da ist das mit dem Scrollen so eine Sache.

hathor 22. Mai 2014 19:01

AW: Formatierte Textausgabe in TMemo
 
Lösung:

Delphi-Quellcode:
procedure ScrollMemoDown(Memo: TMemo);
var Handle: HWND;
begin
  SendMessage(Memo.Handle,{ HWND of the Memo Control }
    WM_VSCROLL,   { Windows Message }
    SB_PAGEDOWN,  { Scroll Command }
    0)            { Not Used }
end;


procedure ScrollMemoUp(Memo: TMemo);
var Handle: HWND;
begin
  SendMessage(Memo.Handle, { HWND of the Memo Control }
    WM_VSCROLL,   { Windows Message }
    SB_PAGEUP,    { Scroll Command }
    0);           { Not Used }
end;

procedure TForm2.Button17Click(Sender: TObject);
begin
 ScrollMemoDown(Memo2);
 ScrollMemoDown(Memo3);
 ScrollMemoDown(Memo4);
 ScrollMemoDown(Memo5);
end;

procedure TForm2.Button18Click(Sender: TObject);
begin
 ScrollMemoUp(Memo2);
 ScrollMemoUp(Memo3);
 ScrollMemoUp(Memo4);
 ScrollMemoUp(Memo5);
end;

Dejan Vu 22. Mai 2014 19:12

AW: Formatierte Textausgabe in TMemo
 
Ich meinte auch das horizontale Scrollen. Und vielleicht auch mal ein paar Spalten mehr.

Vielleicht dann doch die einfache Möglichkeit mit dem Format?

Namenloser 22. Mai 2014 19:17

AW: Formatierte Textausgabe in TMemo
 
Nochmal, damit es hier nicht untergeht, der Hinweis auf Delphi-Referenz durchsuchenFormat:
Zitat:

Zitat von Dejan Vu (Beitrag 1259828)
Oder eben einfach ein TMemo mit einem Courier-Zeichensatz (Hauptsache Fixed-Space).
Und dann die Strings formatiert eintragen, sagen wir so:
Delphi-Quellcode:
myMemo.Add (Format('%20s | %20s | %35s |', [a,b,c]));
Das geht auch einfacher, aber da Du C kennst, sollte Format (ähnlich 'sprintf') kein großes Problem darstellen.
Bezüglich der Formatierungsanweisungen musst Du mal in die Hilfe schauen. Auch, ob das 'Format' oder anders heißt, weiß ich nicht genau.

Das war eigentlich schon die Antwort auf die Frage:
Zitat:

Zitat von Konstantin H. (Beitrag 1259796)
Gibt es hier (wie zB in C) eine möglichkeit formatiert strings auszugeben? Also eine Tabelle mit Text "zeichnen". Die länge der einzelnen strings ist unbekannt und kann bis zu 35 Zeichen lang sein.

Mehr war doch gar nicht verlangt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz