XbpStatic -> XbpStatic -> Ownerdraw ?

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

XbpStatic -> XbpStatic -> Ownerdraw ?

Beitrag von AUGE_OHR »

moin,

ein Ownerdraw mit eine XbpStatic wäre z.b. so

Code: Alles auswählen

  oStatic         := XbpStatic():new(oGrp,,{3,4}, {iMax-7,iMax-13 },,.F.  )
  oStatic:caption := "Test"
  oStatic:drawMode := XBP_DRAW_OWNER
  oStatic:draw := {| oPS, aInfo, oSelf| DrawGrid( oPS, aInfo, oSelf) }
  oStatic:Show()
nun hab ich eine Problem wenn der Parent selbst ein XbpStatic ist z.b. Groupbox()

Code: Alles auswählen

   oGrp         := XbpStatic():new( oDraw,,, {iMax, iMax }  )
   oGrp:type    := XBPSTATIC_TYPE_GROUPBOX
   oGrp:caption := "Gruppe"
   oGrp:create()
das ganze ist auf der DrawingArea

Code: Alles auswählen

   oDlg          := XbpDialog():new(AppDesktop(),, {0,0}, {800,600} )
   oDlg:title    := "Test Static Controls"
   oDlg:tasklist := .T.
   oDlg:create()
   oDlg:DrawingArea:SetColorBG(GRA_CLR_WHITE)
*   oDlg:DrawingArea:clipChildren := .T.
   CenterControl(oDlg)

   oDraw := oDlg:drawingArea
ich habe verschiedene Möglichkeiten ausprobiert ... wie bekommt man das hin :?:

anbei Test Code
GRPBOX01.ZIP
(920 Bytes) 199-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpStatic -> XbpStatic -> Ownerdraw ?

Beitrag von AUGE_OHR »

ich habe es mit Ownerdraw nicht hinbekommen ... aber es geht mit dem o:Paint (WM_PAINT) Callback Slot

Code: Alles auswählen

*   oStatic:drawMode := XBP_DRAW_OWNER
*   oStatic:draw := {| oPS, aInfo, oSelf| DrawGrid( oPS, aInfo, oSelf) }

   oStatic:paint := {|aRect, uNIL, self| oPS := oStatic:LockPS() ,;
                                         DrawGrid(oPS)           ,;
                                         oStatic:UnLockPS()      }
   oStatic:create()
bei Ownerdraw hatte man noch aInfo
nItem XBP_DRAWINFO_ITEM (Für XbpStatic-Objekte ohne Bedeutung)
nAction XBP_DRAWINFO_ACTION Ereignis, welches die Nachricht xbeP_Draw auslöste
nState XBP_DRAWINFO_STATE Aktueller Anzeigestatus des XbpStatic-Objekts
aRect XBP_DRAWINFO_RECT Ausgaberechteck für die Zeichenoperation
hm ... aRect hätte man auch bei o:Paint ...

ich frage mich ob es generell besser wäre o:Paint statt o:Draw zu nutzen für XbpStatic() ... :?:
gruss by OHR
Jimmy
Antworten