Seite 1 von 1

disabled Checkbox

Verfasst: Do, 04. Jul 2019 10:22
von Marcus Herz
Hallo
Eine disabled checkbox ist defaultmäßig grau. Ich will die aber auch in Schwarz, damit man es besser sehen kann.
Ich bin mir fast sicher, jemand hat schon mal die Lösung aufgezeigt. Ich find die aber nicht mehr.
Hat mir jemand eine Tip?

Grüße
Marcus

Re: disabled Checkbox

Verfasst: Do, 04. Jul 2019 10:36
von Martin Altmann
Marcus,
ich nehme an, Du hast Dich an den Presentation Parametern schon versucht?

Viele Grüße,
Martin

Re: disabled Checkbox

Verfasst: Do, 04. Jul 2019 11:56
von AUGE_OHR
mit XBP_PP_DISABLED_BGCLR kann man zwar die Hintergrund Farbe setzen aber das wirkt nicht auch die "Box" wo man ein Häkchen setzt. diese "Box" kann man auch "so" nicht einfach vergrössern und ist bei höher Auflösung kaum zu treffen.

---

nun ist eine Checkbox ein Button :!:

wie ich in meinem Vortrag 2016 gezeigt habe kann man daraus einen "gedrückten Button" machen (PushLike)

Code: Alles auswählen

PROCEDURE PimpMyXb(oObj,lRound)
LOCAL hWnd
LOCAL nStyle

DEFAULT lRound TO .T.

   IF VALTYPE(oObj) = "O"
      hWnd   := oObj:GetHWnd()
      oObj:hide()
      oObj:useVisualStyle := .F.

      nStyle := @user32:GetWindowLongA(hWnd, GWL_STYLE)
      nStyle := nOr(nStyle, BS_PUSHLIKE,BS_CENTER,BS_VCENTER)
      @user32:SetWindowLongA(hWnd , GWL_STYLE , nStyle )
      @user32:InvalidateRect(hWnd,1)

      IF lRound
         MachKreise(oObj)
      ENDIF

      oObj:show()
   ENDIF
RETURN
man sieht ist hier oObj:useVisualStyle := .F. da ich ein rundes Bitmap vorgeführt habe.

während XbpPushButton() ein o:Draw besitzt hat Alaska das für XbpCheckBox() nicht vorgesehen. #-o

die DXE_BUTTON CLASS hat nun die Ownerdraw Fähigkeit inklusive visual Style mit eigenen Image.
Hover = gelb
Pressed = Rot
Normal = grün
DXE_PushLike.jpg
DXE_PushLike.jpg (7.82 KiB) 8859 mal betrachtet

Re: disabled Checkbox

Verfasst: Do, 04. Jul 2019 13:19
von Werner_Bayern
Dafür gibt's ein Asset: Toggle Button Control.

Re: disabled Checkbox

Verfasst: Do, 18. Jul 2019 15:15
von Marcus Herz
Hallo
Danke für die Tips. Aber es hat mal jemand auf einem Vortrag einen API Call gezeigt, der diese Einstellung an der Checkbox vornimmt. Das wird mir reichen. Scheint sich keiner dran zu erinnern.

Re: disabled Checkbox

Verfasst: Fr, 19. Jul 2019 7:58
von Herbert
Lass die Box aktiv.
Setze diese einzig auf nicht editierbar, also dispaly only. So sollte diese nicht grayed gesetzt werden.

Warum der Bediener dann wissen soll, dass diese trotz aktiver Sichtbarkeit nicht geht, ist mir nicht ganz klar.

Re: disabled Checkbox

Verfasst: Fr, 19. Jul 2019 10:27
von Tom
Wenn eine Checkbox normal angezeigt werden soll, aber nicht für Eingaben zur Verfügung steht, kann man das auch im Datalink oder entsprechend in einer abgeleiteten Klasse standardmäßig abfangen. Der Inhalt wird dann einfach nicht getoggelt.

Re: disabled Checkbox

Verfasst: Mo, 22. Jul 2019 19:47
von AUGE_OHR
Hi,
Marcus Herz hat geschrieben: Do, 18. Jul 2019 15:15 Danke für die Tips. Aber es hat mal jemand auf einem Vortrag einen API Call gezeigt, der diese Einstellung an der Checkbox vornimmt. Das wird mir reichen. Scheint sich keiner dran zu erinnern.
es geht doch um das kleine Kästchen wo man einen Harken setzten kann. Das ist visual Style.
nun kann man über StyleClass / StylePart auch was "anders" verwenden wo disable die gewünschte "Farbe" hat ...

Re: disabled Checkbox

Verfasst: Mo, 12. Aug 2019 11:30
von Marcus Herz
nStyle := @user32:GetWindowLongA(::hButton, GWL_STYLE)
nStyle := nOr(nStyle, BS_PUSHLIKE,BS_CENTER,BS_VCENTER)
@user32:SetWindowLongA(::hButton , GWL_STYLE , nStyle )

war was ich gesucht habe.
Jimmys Vortrag PimpMyXbase von 2016, das hab ich aber in der 1. Antwort von Jimmy übersehen oder nicht mehr erkannt.
Manchmal liegt das Ergebnis vor den Augen, nur man erkennt es nicht....