AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

einzelne Zeichen FETT/kursiv etc machen

Ein Thema von bomber901 · begonnen am 27. Mai 2009 · letzter Beitrag vom 29. Mai 2009
Antwort Antwort
bomber901

Registriert seit: 27. Mai 2009
3 Beiträge
 
#1

einzelne Zeichen FETT/kursiv etc machen

  Alt 27. Mai 2009, 19:46
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
  Mit Zitat antworten Zitat
Gargoyl

Registriert seit: 11. Mär 2007
69 Beiträge
 
#2

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 27. Mai 2009, 19:52
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.
  Mit Zitat antworten Zitat
bomber901

Registriert seit: 27. Mai 2009
3 Beiträge
 
#3

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 28. Mai 2009, 16:32
ok danke erstmal für den Tipp, hab das memofeld nun also ausgetauscht, weiß aber trotzdem nciht weiter was die formatierung einzelner Zeichen angeht.
  Mit Zitat antworten Zitat
Gargoyl

Registriert seit: 11. Mär 2007
69 Beiträge
 
#4

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 28. Mai 2009, 16:46
Das geht mit der Eigenschaft 'SelAttributes' von TRichEdit. SelAttributes hat die Eigenschaften für Color, Font (Name), Size, Style etc.
Delphi-Quellcode:
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');
siehe auch Delphi-Referenz durchsuchenTRichEdit und Delphi-Referenz durchsuchenSelAttributes
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#5

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 28. Mai 2009, 17:05
Das geht sogar mit eigener Farbmischung, z.B.

richEdit1.SelAttributes.Color := RGB(255,154,65);

Aber das sieht nicht gerade toll aus
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
bomber901

Registriert seit: 27. Mai 2009
3 Beiträge
 
#6

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 29. Mai 2009, 11:24
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 ?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#7

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 29. Mai 2009, 11:33
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:
procedure TfoTest16.Button1Click(Sender:TObject);
begin
  with RicheEdit1.SelAttributes do Style:=Style+[fsbold];
end;
.. und verwende das neue Attribut immer additiv, sonst wird ein ggf. bereits vorhandenes Attribut wie z.B. kursiv mit der neuen Formatierung entfernt.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 29. Mai 2009, 11:34
Zitat von bomber901:
ok danke erstmal für den Tipp, hab das memofeld nun also ausgetauscht, weiß aber trotzdem nciht weiter was die formatierung einzelner Zeichen angeht.
Also das hatten wir schon so dermaßen oft, dass man eigentlich mit der Suche was finden sollte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: einzelne Zeichen FETT/kursiv etc machen

  Alt 29. Mai 2009, 14:47
Zitat von bomber901:
Delphi-Quellcode:
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 ?
Wie war das?
Zitat:
Programme gehorchen nicht deinen Intentionen sondern Deinen Befehlen?!
Wenn Du die "selectmarkierung " neu setzt ist das auch kein Wunder.
Delphi-Quellcode:
a:=POS(richedit1.seltext,richedit1.text);
...
RichEdit1.SelStart := a-1;
Gruß
K-H
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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