![]() |
einzelne Zeichen FETT/kursiv etc machen
hi
ich sitz zurzeit für ein Schulprojekt an nem delphi programm was sich mit schrift formatierungen befasst. Nun habe ich folgendes problem.... ich möchte das der Markierte Text eines Memo-feldes z.B.Fett ( nach BTN-click) wird. dazu habe ich bisher folgenden quelltext: procedure TForm1.Button1Click(Sender: TObject); begin AusgangsWort:=Memo1.text; seltext1:=memo1.seltext; memo1.Font.Style:= [fsBold]; a:=Pos(seltext1,memo1.Text); Insert(seltext1,Ausgangswort,a); dabei wird nun jedoch natürlich das komplette Wort Fett. Meine Frage ist also ob man einzelnen Wörtern auch die eigenschafft fett geben kann und diese dann in das ausgangswort einfach einbindet... oder muss immer das komplette Memofeld entweder Fett oder eben nicht Fett sein ? danke für hilfe im vorraus :) |
Re: einzelne Zeichen FETT/kursiv etc machen
Ein Memofeld hat nur EINE Schriftart, -stil und -farbe. einzelne Buchstaben anders formatieren geht mit einem Memofeld nicht.
Was du brauchst ist TRichEdit. Damit kannst du einzelne Buchstaben anders formatieren. |
Re: einzelne Zeichen FETT/kursiv etc machen
ok danke erstmal für den Tipp, hab das memofeld nun also ausgetauscht, weiß aber trotzdem nciht weiter was die formatierung einzelner Zeichen angeht.
|
Re: einzelne Zeichen FETT/kursiv etc machen
Das geht mit der Eigenschaft 'SelAttributes' von TRichEdit. SelAttributes hat die Eigenschaften für Color, Font (Name), Size, Style etc.
Delphi-Quellcode:
siehe auch
richEdit1.SelAttributes.Color := clRed;
richEdit1.Lines.Add('Dieser Text ist ROT'); richEdit1.SelAttributes.Color := clBlack; richEdit1.SelAttributes.Style := [fsBold]; richEdit1.Lines.Add('Diese Zeile ist Fett'); ![]() ![]() |
Re: einzelne Zeichen FETT/kursiv etc machen
Das geht sogar mit eigener Farbmischung, z.B.
richEdit1.SelAttributes.Color := RGB(255,154,65); Aber das sieht nicht gerade toll aus |
Re: einzelne Zeichen FETT/kursiv etc machen
ein Problem hab ich jetzt leider immernoch:
ich möchte nach wie vor einen Markierten Text Fett machen, habe dazu folgenden quelltext: seltext1:=richedit1.seltext; a:=POS(richedit1.seltext,richedit1.text); b:=length(seltext1); RichEdit1.SelStart := a-1; // Startposition der Markierung RichEdit1.SelLength := b; // Ende der Markierung RichEdit1.SelAttributes.Style := [fsbold]; // Markierung fett drucken RichEdit1.SelLength := 0; // Markierung beenden nun hab ich halt noch das Problem, dass die 1. reihenfolge des Markieten textes fett macht, Beispiel : wenn vom Wort: " HAHAHA" die letzten 2 Buchstaben Markiert werden und der Button gedrückt wird, werden die ersten beiden Buchstaben Fett. jemand eine idee wie man das umgehen kann oder wie ich halt wirklich immer genau die Stelle ermitteln kann an dem der text markiert ist, unabhängig vom vorherigen Text ? |
Re: einzelne Zeichen FETT/kursiv etc machen
Moin, Moin.
Wenn es nur darum geht, einen durch den Anwender markierten Textabschnitt mit einem speziellen Attribut zu versehen, sollte dieses hier genügen:
Delphi-Quellcode:
.. und verwende das neue Attribut immer additiv, sonst wird ein ggf. bereits vorhandenes Attribut wie z.B. kursiv mit der neuen Formatierung entfernt.
procedure TfoTest16.Button1Click(Sender:TObject);
begin with RicheEdit1.SelAttributes do Style:=Style+[fsbold]; end; |
Re: einzelne Zeichen FETT/kursiv etc machen
Zitat:
|
Re: einzelne Zeichen FETT/kursiv etc machen
Zitat:
Zitat:
Delphi-Quellcode:
Gruß
a:=POS(richedit1.seltext,richedit1.text);
... RichEdit1.SelStart := a-1; K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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-2025 by Thomas Breitkreuz