Owner-drawing

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
kallecux
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 104
Registriert: Mi, 01. Feb 2006 23:19

Owner-drawing

Beitrag von kallecux »

Hallo Alaska-Gemeinde,

kann mir jemand auf die Sprünge helfen, wie das mit dem owner-drawing funktioniert? Wenn der Modus aktiviert wird, dann soll man selber für das Zeichnen sorgen.....wie bekomme ich denn auf einfache Art und Weise einen xbpPushButton hin, bei dem ich die Farbe des Hintergrundes ändern kann....?

Danke im voraus..

Karl Heinz Hammelrath
Beste Grüße

Karl Heinz
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

in der Tips & Tricks Abteilung habe ich vorhin einen Artikel gelesen, wie man einem XbpPushButton farbige und ausgerichtete Texte unterjubelt.

Die haben einfach eine Bitmap drüber gelegt, das müßte doch auch für dich funktionieren XbpBitmap oder XbpStatic (ohne Styleeintrag oder als Text), welches auf die Größe des PB (probieren) getrimmt wird, ohne die 3D-Bereiche zu überschreiben, und dann BG und FG Farbe und Text einstellen wie gewünscht.
Gruß
Hubert
boddy
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 22
Registriert: Fr, 30. Sep 2005 11:39
Wohnort: Berlin

Micro Presentation-Space

Beitrag von boddy »

Hallo,

Laut „Xbase++ - Dokumentation“ ist es leider nicht möglich die Farbe des XbpPushButton aus Xbase heraus zu ändern.
Hinweis: die Farben von XbpMenu, XbpMenuBar und XbpPushButton können in einem Xbase++ Programm nicht durch das Presentation-Parameter Array gesetzt werden. Es werden immer die in der Systemeinstellung definierten Farben verwendet. Für XbpMenu und XbpMenuBar gilt ferner, daß auch der Font nur über die Systemeinstellung definiert werden kann.
Sollte es Dir nur um die Caption gehen, dann am besten alle als Bitmap anfertigen (auch mit unterschiedlichen Hintergrundfarben möglich) und in den entsprechenden Situationen mit oXbp:setCaption(nResource_ID) zuweisen.

Sollte es Dir aber um das Design gehen (flache Schalter, anderer Rand etc.) , dann sollte in den Callback-Codeblöcken bzw. in den Methoden :paint, :activate, :lbUp der "Micro Presentation-Space" benutzt werden.

Code: Alles auswählen

METHOD myPB:paint(aRect)
  ::XbpPushButton:paint(aRect)
  ::malePB()
Return self

METHOD myPB: activate (aRect)
  ::XbpPushButton: activate (aRect)
  ::malePB()
Return self

METHOD myPB: lbUp (aPos)
  ::XbpPushButton: lbUp (aPos)
  ::malePB()
Return self

METHOD myPB:malePB()
  ::oPS := ::lockPS()             
  GraLine( ::oPS, {0,0}, {::currentSize()[1], ::currentSize()[2]}) 
  GraLine( ::oPS, {0,::currentSize()[2]}, {::currentSize()[1], 0}) 
  ::unlockPS( ::oPS )
Return self
Schau Dir doch mal in den Samples das Beispiel microps.prg an.


Gruß
Boddy
Antworten