Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Summenzeichen (Σ) in Courier in TRichEdit anzeigen (https://www.delphipraxis.net/168916-summenzeichen-courier-trichedit-anzeigen.html)

marcibaer 18. Jun 2012 11:56

Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Hallo zusammen!

Ich versuche das Summenzeichen in einem String in einem TRichEdit anzuzeichen.
Das funktioniert auch, aber die ganze Zeile wird dann statt in Courier in einer TrueType-Schrift angezeigt, was mit die komplette Formatierung durcheinander bringt.

Gibt es das Zeichen unter Courier nicht oder wie kann ich es schafften, dass wenigstens die Formatierung für den Rest der Zeile erhalten bleibt, falls es das Zeichen unter Courier nicht geben sollte!?

Vielen Dank für die Hilfe!

hsg 18. Jun 2012 12:13

AW: Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Ich habe eben bei mir auf dem Rechner mit einem FontViewer nachgesehen, es scheint nicht Teil des Zeichensatzes zu sein. Daher wirst du mit Courier alleine nicht glücklich werden.
Entweder eine alternative Schriftart nehmen (Tante Google!) oder das einzelne Zeichen in einer anderen Schriftart verwenden, während der Rest in Courier gesetzt wird.

Füllst du das RichEdit vom Programm aus oder muss der Benutzer den Text alleine eingeben?

Iwo Asnet 18. Jun 2012 13:02

AW: Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Symbol-Zeichensatz sollte auf jedem Windows-PC installiert sein.
Sollte dann das große 'S' sein, wenn ich mich nicht irre.
Delphi-Quellcode:
  RichEdit1.SelAttributes.Name := 'Courier';
  RichEdit1.Lines.Text := 'Text mit S (Summenzeichen)';
  RichEdit1.SelStart := 9;
  RichEdit1.SelLength := 1;
  RichEdit1.SelAttributes.Name := 'Symbol';

marcibaer 18. Jun 2012 15:42

AW: Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Ich generiere die Ausgaben für das RichEdit aus dem Programm heraus.
Die Zeilen landen zuerst in 'ner StringList und werden dann entweder per RichEdit angezeigt oder als Datei gespeichert - deshalb wird die Idee von IwoAsnet so wohl direkt funktionieren.
Da müßte ich dann vor'm Anzeigen die "S" oder wie auch immer die vorher kodiert sind, rausfiltern.

marcibaer 23. Jun 2012 14:23

AW: Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Hallo zusammen!

Irgendwie stehe ich auf dem Schlauch!
Ich probiere nun Folgendes, um das Summenzeichen (als "°S" kodiert) anzuzeigen, aber es klappt nicht:
Delphi-Quellcode:
      with Memo1 do
        begin
          Lines := Eintraege;
          with Lines do
            for i := 0 to Count - 1 do
              begin
                Start := 1;
                repeat
                  o := PosEx('°S',Lines[i],Start);
                  if (o > 0) then
                    begin
                      Start := o;
                      Eintrag := Lines[i];
                      System.Delete(Eintrag,o,1);
                      Lines[i] := Eintrag;
                      SelStart := o;
                      SelLength := 1;
                      SelAttributes.Name := 'Symbol';
                    end;
                until (o = 0);
              end;
        end;
Eintraege ist die StringList, in der ich die Ausgabe anlege.
Seltsamerweise werden, wenn ich z.B. SelLength = 10 habe, einige Zeichen in den oberen Zeilen umgewandelt, obwohl das Summenzeichen erst ca. 50 Zeilen später auftaucht!

Ich hoffe, das sagt Euch etwas...

Vielen Dank!

Aphton 23. Jun 2012 23:05

AW: Summenzeichen (Σ) in Courier in TRichEdit anzeigen
 
Ja klar, weil o relativ zum Zeileanfang ist, jedoch SelStart nen absoluten Wert verlangt...
Hau die For i Schleife raus und arbeite mit Lines.Text..
(Da man dieses Property nicht einfach wie ein String behandeln kann, wäre es angebracht, den Inhalt zuerst in ne temp. String Variable zu kopieren...)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.

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