AGB  ·  Datenschutz  ·  Impressum  







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

Setzen von Font.Style funzt nicht wirklich

Ein Thema von torud · begonnen am 3. Jan 2006 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 12:14
Hallo Wissende!

Ich habe ein Label und 3 Checkboxen zum de-aktivieren von Fett,Unterstrichen und Kursiv.

Folgendes mache ich, wenn zum Beispiel die Checkbox für Fett geklickt wird.

Delphi-Quellcode:
    if chk_bold.Checked then
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style + [fsBold])
    else
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style - [fsBold]);
Folgendes passiert, wenn ich auf die Checkbox für Unterstreichung klicke:
Delphi-Quellcode:
    if chk_bold.Checked then
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style + [fsUnderline])
    else
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style - [fsUnderline]);
Leider muss hier irgendwo ein fehler sein, denn die Zuweisung funktioniert nicht wirklich bzw nicht immer und ich habe keine Idee warum das so ist. Ich weiss nun auch nicht, ob dass mit dem + und - bei dem Zuweisen der Styles so korrekt ist.

Natürlich soll es so sein, dass die Schriftart im Label auch Fett und kursiv zusammen möglich sein muss und alle möglichen Kombinationen möglich sein müssen. Ich will aber auch nicht unbedingt den Weg über den FontDialog gehen, da mir das zu umständlich ist.

Wer hat einen Tipp für mich?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#2

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:08
edit: vergiss es, hast du ja schon. sorry für den fehler.

was ist denn "form2.FormDesigner1.Control"?
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:15
Zitat von dahead:
was ist denn "form2.FormDesigner1.Control"?
Der FormDesigner gibt mir Control das aktuell selektierte Control zurück. Das funktioniert einwandfrei. Leider haut es mit dem Setzen nicht so richtig hin. Warum weiss ich auch nicht.

Mache ich was falsch?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#4

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:18
naja, so genau kann ich dir das leider nicht sagen.
die zuweisung mit font.style := font.style +/- [fsirgendwas] ist ansich schon korrekt.

ich kenne nur keinen formdesigner, hab auch in der hilfe nix gefunden.

welche prozedur löst denn den o.g. code aus? OnCheckboxClick? was willst du fett/unterstrichen darstellen, ein label?
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:23
FormDesigner ist eine externe Komponente. Deshalb wirst Du nix finden in der Hilfe.

Und ja das Ereignis wir OnClick der Checkbox ausgelöst:

Delphi-Quellcode:
procedure Tobj_properties.chk_lineClick(Sender: TObject);
begin
    if chk_bold.Checked then
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style + [fsUnderline])
    else
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style - [fsUnderline]);
end;
Die Checkbox ist nur dann sichtbar, wenn es sich bei dem Control wirklich um Label handelt. Wie gesagt ich will dem Label je nach Checkboxzustand was zuweisen und das klappt schon teilweise, aber leider nicht immer und ich habe keine Ahnung warum. Ich werde mal ein Testprojekt stricken...
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:28
Also es muss wohl doch an der Komponente liegen, da es ohne sie mit statischem Code wunderbar funktioniert, siehe:

Delphi-Quellcode:
procedure TForm1.chk_boldClick(Sender: TObject);
begin
    if chk_bold.Checked then
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style + [fsBold]
    else
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style - [fsBold]
end;

procedure TForm1.chk_ulClick(Sender: TObject);
begin
    if chk_ul.Checked then
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style + [fsUnderline]
    else
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style - [fsUnderline]
end;

procedure TForm1.chk_kursivClick(Sender: TObject);
begin
    if chk_kursiv.Checked then
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style + [fsitalic]
    else
      form1.Label1.Font.Style:=
      form1.Label1.Font.Style - [fsitalic]
end;
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#7

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:33
ja, hab gerade auch ein testprojekt, klappt wie gesagt wunderbar.

evtl. kannst du es ja mal so ähnlich probieren:
Delphi-Quellcode:
  with Sender as TLabel do
   begin
    if fsBold in {(Sender as TLabel).}Font.Style then
     {(Sender as TLabel).}Font.Style := {(Sender as TLabel).}Font.Style - [fsBold]
    else
     {(Sender as TLabel).}Font.Style := {(Sender as TLabel).}Font.Style + [fsBold]
   end;
Angehängte Dateien
Dateityp: zip demo_146.zip (1,4 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#8

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:37
Moment mal, der "Formdesigner" gibt dir das aktuell aktive Control zurück?

Wenn du eine Checkbox anklickst, ist diese aber das aktuell Aktive, oder habe ich das nun falsch verstanden?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:44
Zitat von Vjay:
Moment mal, der "Formdesigner" gibt dir das aktuell aktive Control zurück?

Wenn du eine Checkbox anklickst, ist diese aber das aktuell Aktive, oder habe ich das nun falsch verstanden?
So wie Du es verstanden hast und auch verstehen musstest, ja! Aber es ist doch so, dass die Checkbox auf einem Formular liegt und der FormDesigner mir das aktuell selktierte Control eines anderen Formulares zurückgibt, wie Du am Code erkennen kannst.

form2.FormDesigner1.Control as TLabel Form2 ist das Formular des Labels und das Formular der Checkbox heisst obj_properties. Daran kann es also nicht liegen. Das Problem ist, dass die Styles gesetzt werden und das setzen und Löschen von fsbold IMMER funktioniert, aber das Setzen und Löschen von fsUnderline und fsItalic nur teilweise und ich kapier nicht warum. Es kann eigentlich nur an der Komponente liegen!? Vielleicht sollte ich mal die Erzeuger der Kompo anschreiben...!?

@dahead

Danke für Deine Mühe, ich werde den Code mal probieren!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#10

Re: Setzen von Font.Style funzt nicht wirklich

  Alt 3. Jan 2006, 13:54
Zitat von torud:
Delphi-Quellcode:
procedure Tobj_properties.chk_lineClick(Sender: TObject);
begin
    if chk_bold.Checked then
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style + [fsUnderline])
    else
      ((form2.FormDesigner1.Control as TLabel).Font.Style:=
       (form2.FormDesigner1.Control as TLabel).Font.Style - [fsUnderline]);
end;
Zitat von torud:
Das Problem ist, dass die Styles gesetzt werden und das setzen und Löschen von fsbold IMMER funktioniert, aber das Setzen und Löschen von fsUnderline und fsItalic nur teilweise und ich kapier nicht warum.
Schau dir mal dir mal deine Prozedur GANZ genau an. Du fragst die falsche Checkbox ab
Schönen Tag noch und viel Spass beim
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:13 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