o:SetFont()

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

o:SetFont()

Beitrag von AUGE_OHR »

hi,

ich verändere, während der Laufzeit, den Font der Anwendung mit

Code: Alles auswählen

oDlgMain:SetFont(oFont)
das klappt auch soweit mit der 1st Ebene von o:DrawingArea:Childlist() aber nicht mit weiteren Ebenen :(

Code: Alles auswählen

   ::oStatPB   := XbpStatic()  :new( ::drawingArea, , {  0, StatbarHigh+2 }, {aSize[1]-8, 41} , aPresParam )
   ::oStatPB:type := XBPSTATIC_TYPE_GROUPBOX
   ::oStatPB:ClipChildren := .F.
// jetzt die einzelnen Buttons
   ::makeButton(aPresParam)
   ...

INLINE METHOD makeButton(aPresParam)

   ::oPB01     := XbpPushButton():new( ::oStatPB, , {  4,2}, {76,32}, aPresParam )
   ::oPB01:caption := "F1"
   ::oPB01:tabStop := .T.
   ::oPB01:activate := {|mp1, mp2, obj| ::ToDeskTop() }

   ::oPB02     := XbpPushButton():new( ::oStatPB, , { 82,2}, {76,32}, aPresParam )
   ...
RETURN self
Die Schrift auf den Buttons ändert sich nun nicht "live" ... erst nach einem Neustart ( Werte wurden bei beenden gespeichert )

Die Frage ist nun : wie geht man "richtig" vor damit die der Font "überall" gleich ändert ?
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: o:SetFont()

Beitrag von UliTs »

Schreib Dir eine Funktion SetFontAll( oXbp,oFont ):

Code: Alles auswählen

FUNCTION SetFontAll( oXbp,oXbp )
LOCAL lResult
  lResult := ValType( oXbp ) == "O"
  IF lResult
    IF IsMethod( oXbp,"SetFont" )
      oXbp:SetFont( oFont )
    ENDIF
    IF IsMethod( oXbp,"ChildList" )
      AEval( oXbp:ChildList(),{|oXbp2|lResult := SetFontAll( @oXbp2,@oFont ) .AND. lResult} )
    ENDIF
  ENDIF
RETURN( lResult )
Aufruf:
SetFontAll( oDlgMain,oFont )

Ungetestet.
Könnte so funktionieren :-) .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: o:SetFont()

Beitrag von Herbert »

Achtung bei Edit-Controls. Dort lässt ich so nur die Caption ändern aber nicht der Font des Inputs.
Grüsse Herbert
Immer in Bewegung...
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: o:SetFont()

Beitrag von UliTs »

Keine Frage: die Funktion müsste für einige Klassen noch speziell angepasst werden :-) .
Zuletzt geändert von UliTs am Di, 23. Feb 2016 8:28, insgesamt 1-mal geändert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: o:SetFont()

Beitrag von AUGE_OHR »

hi,

Danke für eure Antworten ... auch wenn die Frage schon ein wenig älter ist ;)

ich bin mir auch nicht mehr sicher warum ich die Frage "so" gestellt habe welches sich nur auf den Font bezieht.
nun kann man aber den Font, besser das Font Object (XBP_PP_FONT), in den Presentation Parameter unterbringen und die werden ja an die Childs vererbt.
gruss by OHR
Jimmy
Antworten