SchriftStyle ändern zur Laufzeit
-
Hallo,
vielleicht eine einfache Frage:
ich will die Überschrift eines Buttons "fett" werden lassen, sobald man ihn anklickt.
Wie lautet die Anweisung: Button1->....?Und wie kann man zur Laufzeit die Hintergrundfarbe eines Buttons ändern.
Danke im Voraus.
LG
Eliza
-
Hallo
Mit der Eigenschaft TButton::Font kannst du die Schrift "fett" werden lassen.
Farbe ändern nicht. TButton verwendet immer den Standard-Button von Windows, das Aussehen wird nur von Windows-Einstellungen bestimmt.
Wenn du wirklich so einen Button haben willst, must du dir entweder selber so eine Komponente schreiben, oder im Netz eine bereits fertige Komponente suchen.bis bald
akari
-
Danke,
noch eine Frage:
ich will wenn der Button 1 mal angeklickt wird das ein Label auf aktiv gesetzt wird.
Wenn der Button nochmal angeklickt wird dass das label auf deaktiv gesetzt wird.
Beim nochmaligen anklicken des Buttons dann wieder auf aktiv u.s.w.ist das machbar, und wie lautet in etwa die Logik des Codes
LG
Eliza
-
Hallo
Ich geh mal davon aus das du mit "aktiv" die Eigenschaft Enabled meinst :
void __fastcall TForm1::Button1Click(TObject *Sender) { Label1->Enabled = !Label1->Enabled; }
Aber das hat nichts mehr mit der Schriftart des Buttons zu tun. Also bitte bei Nachfragen neuen Thread aufmachen.
bis bald
akari
-
Nein, ich will wirklich dass in roter schrift aktiv auf dem Label steht.
-
Hallo
Zum Beispiel so
if (Label1->Caption == "Aktiv") { Label1->Caption = "Deaktiv"; Label1->Font->Color = clSilver; } else { Label1->Caption = "Aktiv"; Label1->Font->Color = clRed; }
Eventuell sollte man den Aktiv/Deaktiv-Status aber lieber an einer extra Variable festmachen. Sei es nun TLabel::Tag, oder doch eine eigene Membervariable des Forms.
bis bald
akari
-
Hallo,
dann eher so:
if (Label1->Font->Color != clRed) { Label1->Font->Color = clRed; Label1->Caption = "aktiv"; } else { // Dann halt das Gegenteil }
// Zu langsam
LG, Micha
-
Hallo,
void __fastcall TFormGraphik::Button2Click(TObject *Sender) { if (Label10->Caption == "aktiv") { Label10->Caption = ""; Label10->Font->Color=clRed; } else { Label10->Caption = "aktiv"; Label10->Font->Color = clRed;
}
ich habe jetzt diese Variante ausprobiert. Das Problem ist nur, dass ich ja den Caption bei Button2Click bereits auf aktiv setzen müsste, dann würde er immer in den if Block gehen und niemals in den else Block.
Wie ist das Problem logisch zu lösen?
LG Eliza
-
Indem Du Dich mal in die Grundlagen der Programmiersprache einarbeitest; Du musst doch lediglich nur noch den Dir gegebenen Code anpassen
-
Hallo,
schon in Ordnung, es funktioniert, hab jetzt die Logik auch verstanden.
LG
Eliza