PDA

Vollständige Version anzeigen : Schaltflächen


DerSchatten
21.03.2004, 14:41
Hi,

ich habe mir aus Grafiken selbst Schlaftflächen gebastelt die der WinXP Overfläche ähnlich sind.
Jetzt habe ich bei jeder Schaltfläche (Bei Mausbewegung) eine ziemlich aufwendige Abfrage hinterlegt:

If RahmenwertDrucken <> "aus" Then
Me!NeuedbRahmen.Visible = False
Me!ExportierenRahmen.Visible = False
Me!SpeichernRahmen.Visible = False
Me!DBSchließenRahmen.Visible = False
Me!DruckenRahmen.Visible = True
Me!AllesAnzeigenRahmen.Visible = False
Me!SuchenRahmen.Visible = False
Me!NeueEingabeRahmen.Visible = False
Me!DetailsRahmen.Visible = False
Me!EinstellungenRahmen.Visible = False

RahmenwertNeueDB = "ein"
RahmenwertExportieren = "ein"
RahmenwertSpeichern = "ein"
RahmenwertDBschließen = "ein"
RahmenwertDrucken = "aus"
RahmenwertAllesAnzeigen = "ein"
RahmenwertSuchen = "ein"
RahmenwertNeueEingabe = "ein"
RahmenwertDetails = "ein"
RahmenwertEinstellungen = "ein"
End If

Gibt es eine Möglichkeit das irgentwie zu vereinfachen? Da bei jeder "Mausbewegung" die Grafiken aufflackern.

DerSchatten
21.03.2004, 18:16
Gibt es vielleicht eine Möglichkeit eine Funktion "Beim Verlassen" einer Schaltfläche zu definieren?

znyx
21.03.2004, 20:21
Hi Schatten,

das kannst Du machen, indem Du das OnMouseMove-Ereignis des Detailbereiches benutzt. Wenn die Maus über dem Detailbereich ist, ist sie ja logischerweise nicht mehr über einer Deiner Schaltflächen.
Wenn Du jetzt noch Deinen Schaltflächen eine gemeinsame Marke zuweist, dann kannst Du mit einer kurzen Routine alle Schalftflächen Deines Formulars wieder zurücksetzen.

Sagen wir einfach Du willst ein Bezeichnungsfeld als Schalftfläche benutzen.Wenn Du mit der Maus darüber fährst soll sich z.B. die Farbe der Beschriftung ändern, so dass sie sich von den anderen unterscheidet und als 'markiert' erscheint.

In den Eigenschaften des Bezeichnungsfeldes bei "Marke" gibst Du z.B. "button" ein.

Ereignis OnMouseMove des Bezfeldes:

bezfeld.forecolor = 65335 '(sowas wie gelb)


Ereignis OnMoueseMove des Detailbereichs des Formulars:

Dim c as variant

for each c in me.controls
if c.tag = "button" then c.forecolor = 0 '(schwarz)
next c



Jetzt sollte die Schaltfläche bei Mausbewegung die Farbe ändern. In der Art kannst Du natürlich auch andere Dinge verändern

Gruß,
znyx