![]() |
Änderung des Schrift-style
Ich möchte mit dem folgenden Code bewirken, dass enweder der ausgewählte Text oder der gesamte Text fett-gedruckt wird. Ich habe einen tbscheck benutzt um den jeweiligen Status anzuzeigen. Der Code funktioniert aber nicht. Warum nicht? :gruebel:
Delphi-Quellcode:
Schon einmal DANKE im Voraus!! :-D
procedure TForm2.ToolButton12Click(Sender: TObject);
begin mark := richedit1.seltext; if Toolbutton1.Down then begin if mark = '' then richedit1.Font.Style := richedit1.font.style + [fsbold]; if mark <> '' then richedit1.SelAttributes.style := richedit1.font.style + [fsbold]; end else begin if mark = '' then richedit1.font.Style := Richedit1.font.style - [fsbold]; if mark <> '' then richedit1.SelAttributes.style := richedit1.Font.style -[fsbold]; end; end; [edit=Matze][delphi]-Tag repariert. MfG, Matze[/edit] |
Re: Änderung des Schrift-style
Hallo,
der Code funktioniert bei mir ohne Probleme. Du kannst übrigens auch "else" nutzen:
Delphi-Quellcode:
if Toolbutton1.Down then
begin if mark = '' then richedit1.Font.Style := richedit1.font.style + [fsbold] else richedit1.SelAttributes.style := richedit1.font.style + [fsbold]; end else begin if mark = '' then richedit1.font.Style := Richedit1.font.style - [fsbold] else richedit1.SelAttributes.style := richedit1.Font.style -[fsbold]; end; |
Re: Änderung des Schrift-style
Bei mir tut sich aber leider immer noch nichts bei klick auf den Button
aber trotzdem Danke für die Antwort :wink: |
Re: Änderung des Schrift-style
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Mit folgendem Code klappt's nun bei mir halbwegs. Zugegeben, das erscheint mir ein wenig umständlich, aber etwas besseres fällt mir nicht ein, nur irgendwas stimmt mit den Zeilenumbrüchen nicht. :gruebel:
Delphi-Quellcode:
Im Anhang eine Demo.
procedure TForm1.ToolButton1Click(Sender: TObject);
var mark: string; SelStart, SelLength: Integer; begin mark := RichEdit1.SelText; SelStart := RichEdit1.SelStart; SelLength := RichEdit1.SelLength; if mark = '' then RichEdit1.SelectAll; if Toolbutton1.Down then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold] else RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold]; RichEdit1.SelStart := SelStart; RichEdit1.SelLength := SelLength; end; |
Re: Änderung des Schrift-style
Bei mir scheint Delphi nicht mit den verschiedenen Gedrückt-Phasen des Buttons zurechtzukommen. Deswegen hat es bei mir auch nicht mit der Änderung des Styles geklappt da aus welchem Grund auch immer den Down-Zustand nicht erkannt habt ich habe das Problem nun mit folgendem Quelltext gelöst:
Delphi-Quellcode:
Aber Trotzdem Danke für deine Mühe :)
procedure TForm2.ToolButton12Click(Sender: TObject);
var SelStart, SelLength: Integer; begin mark := RichEdit1.SelText; SelStart := RichEdit1.SelStart; SelLength := RichEdit1.SelLength; if mark = '' then RichEdit1.SelectAll; if s = false then s2:= true; if s = true then s2 := false; if s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold]; if not s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold]; RichEdit1.SelStart := SelStart; RichEdit1.SelLength := SelLength; s := s2; end; P.S: Das ist zwar eine wirklich komplizierte Lösung aber scheint endlich zu funktionieren und ich habe endlich begriffen wie man gescheit Quelltext posted:!: |
Re: Änderung des Schrift-style
Delphi-Quellcode:
wird zu
if s = false then s2:= true;
if s = true then s2 := false;
Delphi-Quellcode:
s2 := not s;
|
Re: Änderung des Schrift-style
Schönen Dank für die Anmerkung, die das doch alles ein wenig vereinfacht :-D
|
Re: Änderung des Schrift-style
Und noch etwas: Ich habe dir doch bereits den Tipp gegeben, öfters "else" zu nutzen. Das ist erstens übersichtlicher und zweitens musst du bei Änderungen im Code nicht 2 Stellen anpassen.
Ändere das hier ...
Delphi-Quellcode:
also besser in dies hier:
if s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold];
if not s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold];
Delphi-Quellcode:
Das habe ich dir oben nicht umsonst so gelöst.
if s2 then
RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold] else RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold]; Und gewöhne dir an, den Code zu formatieren, damit man auf den ersten Blick sieht, was zusammen gehört. Das kann dir viele Fehler ersparen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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