AGB  ·  Datenschutz  ·  Impressum  







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

Änderung des Schrift-style

Ein Thema von HTML04 · begonnen am 3. Nov 2007 · letzter Beitrag vom 3. Nov 2007
Antwort Antwort
Benutzerbild von HTML04
HTML04

Registriert seit: 31. Okt 2007
Ort: Dülmen
48 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Änderung des Schrift-style

  Alt 3. Nov 2007, 11:02
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?

Delphi-Quellcode:
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;
Schon einmal DANKE im Voraus!!


[edit=Matze][delphi]-Tag repariert. MfG, Matze[/edit]
Rutten Raus!!!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 11:16
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;
  Mit Zitat antworten Zitat
Benutzerbild von HTML04
HTML04

Registriert seit: 31. Okt 2007
Ort: Dülmen
48 Beiträge
 
RAD-Studio 2009 Arc
 
#3

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 13:42
Bei mir tut sich aber leider immer noch nichts bei klick auf den Button
aber trotzdem Danke für die Antwort
Rutten Raus!!!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 14:14
Zitat von HTML04:
Bei mir tut sich aber leider immer noch nichts bei klick auf den Button
Bei mir geht's bis zu einer bestimmten Situation richtig. Hat man den Stil bei markiertem Text geändert, dann ändert sich dieser bei unmarkiertem nicht mehr.

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.

Delphi-Quellcode:
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;
Im Anhang eine Demo.
Angehängte Dateien
Dateityp: zip richedit_534.zip (5,2 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von HTML04
HTML04

Registriert seit: 31. Okt 2007
Ort: Dülmen
48 Beiträge
 
RAD-Studio 2009 Arc
 
#5

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 20:17
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:
 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;
Aber Trotzdem Danke für deine Mühe

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
Rutten Raus!!!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 20:42
Delphi-Quellcode:
if s = false then s2:= true;
if s = true then s2 := false;
wird zu

  s2 := not s;
  Mit Zitat antworten Zitat
Benutzerbild von HTML04
HTML04

Registriert seit: 31. Okt 2007
Ort: Dülmen
48 Beiträge
 
RAD-Studio 2009 Arc
 
#7

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 23:45
Schönen Dank für die Anmerkung, die das doch alles ein wenig vereinfacht
Rutten Raus!!!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Änderung des Schrift-style

  Alt 3. Nov 2007, 23:51
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:
if s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold];
if not s2 then RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold];
also besser in dies hier:
Delphi-Quellcode:
if s2 then
  RichEdit1.SelAttributes.Style := RichEdit1.Font.Style + [fsbold]
else
  RichEdit1.SelAttributes.Style := RichEdit1.Font.Style - [fsbold];
Das habe ich dir oben nicht umsonst so gelöst.
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.
  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 18:32 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