Seite 3 von 3

Re: Dategadget Kalender gößer darstellen

Verfasst: 21.05.2017 10:41
von RSBasic
Das wäre aber leider etwas zu spät bei seinen 17.000 Zeilen. :mrgreen:

Re: Dategadget Kalender gößer darstellen

Verfasst: 21.05.2017 10:53
von gnaps
HI,

17706 Zeilen um genau zu sein, sitze schon 3,5 Jahre an diesem Projekt,
läuft auch schon seit 2 Jahren in der Praxis.

Canvas ist für mich zu aufwendig, ich nehme lieber die fertigen Bordmittel.

Dennoch danke für die Tipps.

gruß
gnaps

Re: Dategadget Kalender gößer darstellen

Verfasst: 25.05.2017 23:32
von gnaps
Hi RSBasic,

das mit dem DateGadget ist nicht die optimale Lösung.
Ich öffne jetzt ein eigenes Fenster mit einem CalenderGadget.

Hast du auch den Code für das CalenderGadget ?

Da habe ich jetzt immer noch die kleinen Zahlen.

Wäre Super.

Gruß
gnaps

Re: Dategadget Kalender gößer darstellen

Verfasst: 26.05.2017 11:24
von RSBasic

Code: Alles auswählen

EnableExplicit

LoadFont(1, "Segoe UI", 15)

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CalendarGadget(1, 10, 10, 250, 300)
  SetWindowTheme_(GadgetID(1), @"", @"")
  
  SetGadgetFont(1, FontID(1))
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

Re: Dategadget Kalender gößer darstellen

Verfasst: 26.05.2017 11:38
von gnaps
HI RSBasic,

Danke wie immer perfekt.

Kannst Du mir das erklären

SetWindowTheme_(GadgetID(#cal_Kalender), @"", @"")

jetzt brauch ich das

Code: Alles auswählen

Procedure WindowCallback(hWnd, uMsg, wParam, lParam)
  Protected *NMDATETIMECHANGE.NMDATETIMECHANGE
  Protected Handle_DropDown
  Protected Handle_SysMonthCal32
  Protected ClassName$ = Space(1024)
  
  Select uMsg
    Case #WM_NOTIFY
      *NMDATETIMECHANGE = lParam
      
      If *NMDATETIMECHANGE\nmhdr\hwndfrom
        GetClassName_(*NMDATETIMECHANGE\nmhdr\hwndfrom, @ClassName$, Len(ClassName$))
        If ClassName$ = "SysDateTimePick32"
          If *NMDATETIMECHANGE\nmhdr\code = #DTN_DROPDOWN
            Handle_DropDown = FindWindow_("DropDown", 0)
            Handle_SysMonthCal32 = FindWindowEx_(Handle_DropDown, #Null, "SysMonthCal32", #Null)
            If Handle_SysMonthCal32
              SetWindowTheme_(Handle_SysMonthCal32, @"", @"")
              SendMessage_(Handle_SysMonthCal32, #WM_SETFONT, FontID(1), 0)
              SetWindowPos_(Handle_DropDown, 0, 0, 0, 250, 300, #SWP_SHOWWINDOW | #SWP_NOZORDER | #SWP_NOMOVE | #SWP_FRAMECHANGED)
            EndIf
          EndIf
        EndIf
      EndIf
      
  EndSelect
  
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
nicht mehr.

gruß
gnaps

Re: Dategadget Kalender gößer darstellen

Verfasst: 26.05.2017 11:47
von RSBasic
gnaps hat geschrieben:Kannst Du mir das erklären

SetWindowTheme_(GadgetID(#cal_Kalender), @"", @"")
Standardmäßig werden alle Controls von Windows mit dem aktuellen Windows-Design (Theme) dargestellt. Einige Controls lassen sich aber optisch nicht verändern.
Deshalb muss man das Design des Controls auf Klassisch umstellen, damit man z.B. die Möglichkeit hat, die Schriftgröße zu verändern.

Re: Dategadget Kalender gößer darstellen

Verfasst: 27.05.2017 12:52
von Shardik
Wenn man in RSBasics letztem Beispiel die nur in Windows verwendbare API-Funktion SetWindowTheme_() in diesen CompilerIf-Block

Code: Alles auswählen

  CompilerIf #PB_Compiler_OS = #PB_OS_Windows
    SetWindowTheme_(GadgetID(1), @"", @"")
  CompilerEndIf
setzt, dann läuft das Beispiel auch unverändert unter Linux (getestet mit Linux Mint 18.1 x64 Cinnamon), nicht aber unter MacOS (getestet mit MacOS 10.6.8 'Snow Leopard'), wo die Font-Größe des CalendarGadget sich anscheinend nicht ändern läßt.

Re: Dategadget Kalender gößer darstellen

Verfasst: 10.06.2017 14:27
von Häns
.