Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0505: Ändern der Schriftfarbe eines Commandbuttons

 von 

Beschreibung 

Die Farbe eines Commandbuttons ist leider immer
Schwarz. Immerhin kann jedoch man seit VB5 Bilder auf den
Buttons unterbringen. Dies wird hier genutzt, um farbige
Buttontexte zu erzeugen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,43 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Bildfeld-Steuerelement "Picture1"
'
' Autor: K. Langbein Klaus@ActiveVB.de
'
' Beschreibung: Die Farbe eines Commandbuttons ist leider immer
' Schwarz. Immerhin kann jedoch man seit VB5 Bilder auf den
' Buttons unterbringen. Dies wird hier genutzt, um farbige
' Buttontexte zu erzeugen.
'
Option Explicit


Sub color_caption(cntrl As Control, ByVal caption$, ByVal col As Long)
    
    Picture1.Cls
    'Picture1.Picture = Nothing
    Picture1.AutoRedraw = -1
    
    ' Alle Einstellungen uebernehmen
    Picture1.BackColor = cntrl.BackColor
    Picture1.ForeColor = col
    Picture1.Font = cntrl.Font
    Picture1.FontBold = cntrl.FontBold
    Picture1.FontItalic = cntrl.FontItalic
    Picture1.FontUnderline = cntrl.FontUnderline
    Picture1.FontStrikethru = cntrl.FontStrikethru
    
    ' Groesse der Picturebox anpassen
    Picture1.Width = Picture1.TextWidth(caption$) * 1.05
    Picture1.Height = Picture1.TextHeight(caption$) * 1.2
    
    ' Die neue Caption als Text darstellen
    Picture1.Print caption$
    
    ' Die Originalcaption muss geloescht werden
    Command1.caption = ""
    Command1.Picture = Picture1.Image
    
    'Alternativ koennte mn auch die Picture-Eigenschaft uebergeben
    'picture1.Picture=picture1.Image
    'Command1.Picture = Picture1.Picture
    
End Sub

Private Sub Command1_Click()
    Dim col As Long
    Randomize
    ' ' Hier wird eine zufaellige Farbe erzeugt
    col = QBColor(Rnd * 15)
    ' und dann and die Funktion uebergeben.
    Call color_caption(Command1, "Change Color", col)
    
End Sub

'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Jochen Hintringer am 09.06.2011 um 11:40

Vorsichtig!
Dieses Script ist fehlerhaft! Es ist zwar ungefährlich, aber funktioniert nicht so, wie man es sich wünscht.

Liebes ActiveVB-Team, bitte überarbeiten.
Danke.

Kommentar von Daniel Nützler am 11.07.2006 um 11:12

Ich musste zuerst

Picture1.ScaleMode = vbPixels
setzen.

Bei "Alle Einstellungen uebernehmen" fehlt
Picture1.FontSize = cntrl.FontSize
.

Beim Ändern mehrerer Buttons bzw. Buttons mit unterschiedlicher Caption ist es notwendig, nach dem Setzen der Größe der Picturebox
Picture1.Cls
aufzurufen, sonst wird Größe von Picture1.Image nicht angepasst und die Schrift ist nicht mittig auf dem Button.

Soll die Schrift mittig auf dem Button sein, können die Faktoren bei der Anpassung der Größe der Picturebox entfallen.

Kommentar von Heinz Maier am 02.10.2003 um 13:32

Hi,
Denn Download des Beispielprojekts machte ich.

Dann wollte ich Ihr Makro "Ändern der Schriftfarbe eine Command Buttons (Tip 0505)" bei mir laufen lassen.Klappt nicht!!!

Im Einzenlen. Es handelt sich doch um eine VBA-Pgm unter Excel oder ?

Also ich kopiere jedenfalls Ihren Code vom Internet runter und will dann kompilieren.
Dann stört er (ich nenne ihn den Allerweltswisser)sich an Picture1.cls. Wundert mich nicht, weil ich mit ihrer Picture1 was eine Bildatei sein soll nichts anfangen kann bzw. unter Eigenschaften habe ich eine Picture.datei (*.bmp) eibgebunden, die hat er auch geladen.
Aber er erkennt trotzdem nicht was die Picture1 ist.
Was ist den Picture1 ?

Außerdem kann ich ebenfalls mit Project1.vbp nichts anfagen. was ist das ?
Ist das VB ?
Ich kenne nur VBA dort VBA-Project(Excel-Datei) ?

Was meinen Sie kann ich das noch zum Laufen bringen ?

Für evtl. Mühe bedanke ich mich jetzt schon.

mfg
Heinz Maier

Kommentar von Henne am 10.10.2002 um 12:17

Und wie siehts mit dem unterstrichenen Buchstaben aus?? (Tastenkombination mit Alt)