![]() |
In eine Zeile in einem Richtext mehrere texte einfügen.
Hi
Ich habe volgendes Problem: Und zwar möchte ich in ein Richtext feld 2-3 texte in einer zeile unterbringen. Sie sollen aber immer an der selben Position landen, also egal wie lang der eine ist, der andere Text soll trotzdem an die gleiche stelle wie vorher, also ungefähr so:
Code:
Also egal wie lang das wort, oder der Satz ist, sie sollen immer untereinander stehn.
Test1 Test2 Test3
Dieter1 Dieter2 Dieter3 und nicht so: Test1 Test2 Test3 Dieter1 Dieter2 Dieter3 Ich hoffe ihr versteht was ich meine :| Danke im Voraus Mfg Power-Poler |
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
Wie kommen denn die Texte in das RichEdit?
|
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
So:
Delphi-Quellcode:
Den code verwände ich dafür.
RichEdit1.Clear;
RichEdit1.Lines.Insert(0,''); RichEdit1.SelAttributes.Size := 15; RichEdit1.Lines.Insert(1,' Text1');; RichEdit1.SelAttributes.Size := 10; RichEdit1.Lines.Insert(2,' ' + Variable1 + 'Text2' + 'Text3'); RichEdit1.Lines.Insert(3,''); RichEdit1.SelAttributes.Size := 10; RichEdit1.Lines.Insert(4,' ' + Variable2 + 'text4' + 'Text5'); RichEdit1.SelAttributes.Size := 10; RichEdit1.Lines.Insert(5,' ' + Variable3 + 'text6' + 'Text7'); RichEdit1.SelAttributes.Size := 10; RichEdit1.Lines.Insert(6,' ' + Variable4 + 'Text8' + 'Text8'); RichEdit1.Lines.Insert(7,''); und die Texte, 2-8, sollen immer untereinander stehn, egal wie lang die Variable1-4 ist Variable 1-4 sind String's mit unterschiedlich langen Texten drin, die verändert werden können |
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
Hallo,
anstelle der Leerzeichen einfach #9 (Tab) einsetzen. |
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
und was bedeutet das dan?
wiviel abstand is das dan? ein Tap abstand? Wie soll ich das einfügen? hab jetzt so Probiert:
Delphi-Quellcode:
Dan kommt ein error, und so kommt nur der zeichensatz raus:
RichEdit1.Lines.Insert(2,' ' + Variable1 + #9 (Tab) + 'Text2' + 'Text3');
Delphi-Quellcode:
Also wie muss ich das dazwischen einsetzten??RichEdit1.Lines.Insert(2,' ' + Variable1 + '#9 (Tab)' + 'Text2' + 'Text3'); |
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
Moin, Moin,
nur #9 einsetzen, nicht die im Text als Erklärung eingefügten Hinweis (TAB) |
Re: In eine Zeile vin einem Richtext mehrere texte einfügen.
Also, ich weis nicht, wie mir das helfen soll, der Abstand ist nicht gross genaug, der dan erzeugt wird, also muss ich mehrere hintereinander setzten, und sobald die variable länger wird, wird der rest weiter verückt.
Delphi-Quellcode:
wenn in der Variable Beispielsweise Martin steht, geht es, aber sobal MartinMusterman drin steht, werden die Texte 2 und 3 trotzdem weiter gerückt.
RichEdit1.Lines.Insert(2,' ' + Variable1 + #9+ #9+ #9+ #9+ #9+ #9+ #9+ 'Text2' + 'Text3');
|
Re: In eine Zeile in einem Richtext mehrere texte einfügen.
Das ist verständlich, du musst natürlich den Tabulator auf einen passenden Wert setzen. Etwa so: Alle Einträge VOR dem Einfügen auf die Länge (in Pixeln) utersuchen, die Tabschrittweite setzen und erst dann einfügen.
|
Re: In eine Zeile in einem Richtext mehrere texte einfügen.
Und jetzt mal auf deutsch bitte, dan ich es auch verstehen kann :stupid:
:mrgreen: |
Re: In eine Zeile in einem Richtext mehrere texte einfügen.
In einer Schleife alle Einträge, die innerhalb einer Spalte stehen sollen, auf deren Länge untersuchen, der längste gefundene Wert+Freiraum ist dann dein Wert für den Tabulator der Spalte. Canvas hat eine Methode "TextWidth" - schau hierzu in die Hilfe.
Den Wert für den Tabulator setzt du mit Hilfe von SendMessage/PostMessage und EM_SETTABSTOPS, auch hierzu solltest du weitere Informationen finden. Alternativ anstelle eines MEMOS/RICHEDITS vielleicht auch ein Stringgrid verwenden. Wenn keine Linien und keine FixedCols/FixedRows dargestellt werden, schaut das eigentlich genau so aus wie ein EditControl - damit dürfte das alles ein wenig einfacher sein. Sollen spezielle Textattribute verwendet werden, musst du das OnDraw des Grids dann selbst übernehmen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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