![]() |
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:
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?
TMemo.Lines.ADD(array_1[i] + array_2[i] + array_3[i] + array_4[i])
MfG Konstantin |
AW: Formatierte Textausgabe in TMemo
Wäre da nicht eine Listbox oder Listview oder ein StringGrid die bessere Komponente?
|
AW: Formatierte Textausgabe in TMemo
Ich würde da auch eher zur TListView (Stil vsReport) tendieren.
|
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. |
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:
Das geht auch einfacher, aber da Du C kennst, sollte Format (ähnlich 'sprintf') kein großes Problem darstellen.
myMemo.Add (Format('%20s | %20s | %35s |', [a,b,c]));
Bezüglich der Formatierungsanweisungen musst Du mal in die Hilfe schauen. Auch, ob das 'Format' oder anders heißt, weiß ich nicht genau. |
AW: Formatierte Textausgabe in TMemo
Liste der Anhänge anzeigen (Anzahl: 1)
...oder nimm 4 Memos nebeneinander.
|
AW: Formatierte Textausgabe in TMemo
Zitat:
|
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; |
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? |
AW: Formatierte Textausgabe in TMemo
Nochmal, damit es hier nicht untergeht, der Hinweis auf
![]() Zitat:
Zitat:
|
AW: Formatierte Textausgabe in TMemo
Zitat:
|
AW: Formatierte Textausgabe in TMemo
Wie schon gesagt, bei RichEdit geht das. Hatte eine Prozedur parat, habe sie aber gerade aktualisiert. Sollte aber funktionieren.
Delphi-Quellcode:
//ToDo: Falsche Reihenfolge (z. B. 20, 30, 10) führt zu fehlerhaften Tabstops.
procedure SetTabStops(RichEdit: TRichEdit; TabStops: array of Word); var i: Integer; begin if High(TabStops) > 255 then //255 = Max-Anzahl von Tabstops raise Exception.Create('Zu viele Tabstops (über 255).'); RichEdit.Paragraph.TabCount := 0; for i := 0 to High(TabStops) do begin RichEdit.Paragraph.TabCount := RichEdit.Paragraph.TabCount + 1; RichEdit.Paragraph.Tab[i] := TabStops[i]; end; end; procedure TForm1.Button1Click(Sender: TObject); begin RichEdit1.Clear; SetTabStops(RichEdit1, [50, 100, 150, 300]); RichEdit1.SelText := 'Claudia' + #9 + 'Anja' + #9 + 'Sonja' + #9 + 'Ulrike' + #9 + 'Kiara'; end; |
AW: Formatierte Textausgabe in TMemo
|
AW: Formatierte Textausgabe in TMemo
Hallo,
vielen Dank! Sehr nützliche Tipps. Konnte leider nicht früher antworten... melde mich sobald ich ne ordentliche Lösung habe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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 by Thomas Breitkreuz