Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RichEdit - Formatierungsprobleme (https://www.delphipraxis.net/53886-richedit-formatierungsprobleme.html)

PierreB 24. Sep 2005 15:58


RichEdit - Formatierungsprobleme
 
Moinsen :hi:

folgendes Problem:

Ich habe 2 Daten (genauer gesagt 2 Edits und deren Text-Eigenschaft). Diese sollen nun zusammen in ein RichEdit geladen werden, und zwar in die gleiche Zeile. Das wär ja sehr einfach:
Delphi-Quellcode:
richedit1.lines.add(edit1.text + edit2.text);
Das Problem ist jetzt nur, dass der Text aus Edit1 linksbündig, der Text aus Edit2 aber rechtsbündig sein soll. Wie bekomm ich das nun hin so das die beiden Daten immernoch in der gleichen Zeile sind ?

Vielen Dank schonmal,

phXql 24. Sep 2005 16:00

Re: RichEdit - Formatierungsprobleme
 
Zitat:

Zitat von PierreB
Moinsen :hi:

folgendes Problem:

Ich habe 2 Daten (genauer gesagt 2 Edits und deren Text-Eigenschaft). Diese sollen nun zusammen in ein RichEdit geladen werden, und zwar in die gleiche Zeile. Das wär ja sehr einfach:
Delphi-Quellcode:
richedit1.lines.add(edit1.text + edit2.text);
Das Problem ist jetzt nur, dass der Text aus Edit1 linksbündig, der Text aus Edit2 aber rechtsbündig sein soll. Wie bekomm ich das nun hin so das die beiden Daten immernoch in der gleichen Zeile sind ?

Vielen Dank schonmal,

geht nicht. du kannst meines wissens nach nur textblöcke ausrichten, nicht einzelne zeilen...

PierreB 24. Sep 2005 16:08

Re: RichEdit - Formatierungsprobleme
 
Verdammt. :? Sowas in der Art hab ich mir schon gedacht.

Gibt es Alternativen ? Ich muss einfach diese beiden Datensätze korrekt ausgerichtet in nem Memo oder Richedit unterbringen....

Luckie 24. Sep 2005 16:14

Re: RichEdit - Formatierungsprobleme
 
Zitat:

Zitat von phXql
geht nicht. du kannst meines wissens nach nur textblöcke ausrichten, nicht einzelne zeilen...

Du meinst das Richtige, hast es aber falsch gesagt. ;) Man kann schon jede Zeile anders ausrichten, nur innerhalb einer Zeile geht das nicht.

marabu 24. Sep 2005 17:23

Re: RichEdit - Formatierungsprobleme
 
Hi Pierre,

Zitat:

Zitat von PierreB
Gibt es Alternativen ?

wenn du Geld übrig hast, dann kaufe eine kommerzielle Komponente und du erhältst die Funktionalität der aktuellen Version des rich edit controls - die aktuelle Version ist 4.1 und Borland kapselt 1.0 - oder schreibe dir selbst eine Komponente für die neueren Versionen.

Am schnellsten dürfte es gehen, wenn du deinen Text von TWebBrowser rendern lässt. Eine table row, mal align=left, mal align=right und du bist fertig.

Grüße vom marabu

PierreB 24. Sep 2005 17:29

Re: RichEdit - Formatierungsprobleme
 
Zitat:

Zitat von marabu
wenn du Geld übrig hast, dann kaufe eine kommerzielle Komponente und du erhältst die Funktionalität der aktuellen Version des rich edit controls - die aktuelle Version ist 4.1 und Borland kapselt 1.0 - oder schreibe dir selbst eine Komponente für die neueren Versionen.

Nein, eher nicht. :?
Zitat:

Zitat von marabu
Am schnellsten dürfte es gehen, wenn du deinen Text von TWebBrowser rendern lässt. Eine table row, mal align=left, mal align=right und du bist fertig.

Wenn du das sagst, wird es sicherlich so gehen, nur zeige ich die Daten nicht nur an, sondere muss sie dann auch noch verarbeiten (unter anderem exportieren, PDF, Doc), ob das mittels TWebBrowser dann problemlos gehen wird, wage ich zu bezweifeln. ;)

Naja, muss ich mir halt was anderes einfallen lassen, trotzdem danke an euch.

PierreB 22. Okt 2005 19:14

Re: RichEdit - Formatierungsprobleme
 
Hm, ich hänge immer noch an dem Problem, also ich möchte 2 Wörter in eine Zeile eines Richedits schreiben, die eine ist links- und die andere rechtsbündig. Jemand noch ne Idee ? :-(

Lannes 22. Okt 2005 23:31

Re: RichEdit - Formatierungsprobleme
 
Hallo,

eine Idee schon :gruebel:, ist aber ein Fake :wink:

Der Code überprüft die Längen der Strings und berechnet den Zwischenraum der gefüllt werden muss,
damit die Strings optisch richtig ausgerichtet sind.
Dieser Zwischenraum wird dann durch Leerzeichen mit Size 1 in Arial aufgefüllt.

Damit hat man zumindest schon mal die Anzeige realisiert,
und ein Export ins RTF-Format ist dann auch möglich.

Eventuell hilft Dir das ja weiter:
Delphi-Quellcode:
procedure RE_SetFakeTab(RE: TRichEdit;s1,s2: String;iLeft,iFakeTab: Integer);
var SelAttrFontNameOld : string;
    aBmp : TBitMap;
    s1Width,s2Width,iFaktor,SelAttrSizeOld : Integer;
begin
  with RE do
    begin
      SelAttrFontNameOld := SelAttributes.Name;
      SelAttrSizeOld := SelAttributes.Size;
      Paragraph.FirstIndent := iLeft;
      aBmp := TBitMap.Create;
      with aBmp.Canvas do
        begin
        aBmp.Canvas.Font.Name := SelAttributes.Name;
        aBmp.Canvas.Font.Size := SelAttributes.Size;
        s1Width := aBmp.Canvas.TextWidth(s1);
        s2Width := aBmp.Canvas.TextWidth(s2);
        aBmp.Canvas.Font.Name := 'Arial';
        aBmp.Canvas.Font.Size := 1;
        iFaktor := aBmp.Canvas.TextWidth(StringOfChar(' ',100));
        end;
      aBmp.Free;
      SelText := s1;
      SelAttributes.Name := 'Arial';
      SelAttributes.Size := 1;
      SelText := StringOfChar(' ',Round((iFakeTab-iLeft-s1Width-s2Width)*(iFaktor/100)));
      SelAttributes.Name := SelAttrFontNameOld;
      SelAttributes.Size := SelAttrSizeOld;
      SelText := s2;
      Lines.Add('');
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RE_SetFakeTab(Richedit1,Edit1.Text,Edit2.Text,15,150);
end;

Flocke 23. Okt 2005 11:39

Re: RichEdit - Formatierungsprobleme
 
Wie wär's denn mit einem rechtsbündigen Tab ganz am rechten Rand (TJvRichEdit kann das z.B.)? Du brauchst dafür aber mindestens ein RichEdit 3.0 Control (k.A. ab wann das dabei war).

Dann kannst du die Daten mit
Delphi-Quellcode:
richedit1.lines.add(edit1.text + #9 + edit2.text);
einfügen.

PierreB 23. Okt 2005 13:34

Re: RichEdit - Formatierungsprobleme
 
@Lannes: Vielen Dank für deine Mühe erstmal, nur leider ging das nicht, der Edit2.Text stand nur ein kleines bisschen neben dem Text von Edit1, also nicht am rechten Rand. :-(

@Flocke: Ein TJvRichEdit steht mir leider nicht zur Verfügung aber bei deinem Quelltext is mir ne Idee gekommen: Da das RichEDit sich in Größe & Schriftart eh nicht verändern lässt, mach ich das erstmal so:
Delphi-Quellcode:
richedit1.lines.add(edit1.text + #9 + #9 + #9 + #9 + #9 + edit2.text);
Sicherlich nicht die beste & eleganteste Lösung, aber so geht es jedenfalls erstmal halbwegs. Vielen Dank. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr.
Seite 1 von 2  1 2      

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