PDA

Vollständige Version anzeigen : Schaltfläche layouten


stefan01
16.10.2001, 07:49
Hallo Zusammen!
Ich hätte da gerne mal ein Problem.

Ich möchte ein Schaltfläche in einem Formular selbst Layouten und zwar soll diese flach erscheinen, wenn sie kein Focus hat und erhoben, wenn sie den Focus besitzt.

Den Rahmen (Farbe und Stärke) würde ich auch gerne über VBS erstellen.

Ist das Möglich?!

sekoe
16.10.2001, 09:01
Hi Stefan,
das geht indem Du mit Labels Deine Schaltflächen erstellst. Den Rahmen dann während des MouseMove - Event zeichnen.

Beispiel gefällig ? ;)

druschba
16.10.2001, 09:04
Gute Frage!

...würde mich auch interessieren, denn diese 'Standard'-Buttons sind ja mehr als langweilig...eigentlich müsste es ja auch gehn sich einen Bitmap-Schalter in Paint oder so zu malen und ihn dann als 'Object' zu intergrieren...

Wäre über Tips etc. auch mehr als Erfreut!

Ciao...

sekoe
16.10.2001, 09:37
Also, hier mal ein kleines Beispiel. Ich habe ein Formular erstellt mit einem Bezeichnungsfeld Name: lblButton.

Folgender Event beim "rüberrutschen" mit der Maus:
Private Sub lblButton_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' ****
' **** Button gewählt
' ****
Me.lblButton.BorderStyle = 1
Me.lblButton.SpecialEffect = 1
Me.lblButton.ForeColor = 255

End Sub

Zum Deaktivieren des Buttons (Label):

Private Sub Detailbereich_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' ****
' **** Button wieder deaktivieren
' ****
Me.lblButton.BorderStyle = 0
Me.lblButton.SpecialEffect = 0
Me.lblButton.ForeColor = 0

End Sub

Wie gesagt, dass ist ein einfaches Beispiel. Bei mehreren Buttons wird das alles unübersichtlich. Im Original habe ich das gesamte Handling in eine Public Function gesetzt, die als Parameter den entsprechenden Button enthält. Um das "flackern" zu verhindern oder Defaultdesigns zu unterstützen habe ich die entstpr. Variablen global für das entsprechende Formular deklariert.

stefan01
16.10.2001, 10:21
Erst mal vielen Dank an Sekoe!

Werde gleich mal Deinen Code ausprobieren.

Stefan