Seite 1 von 1

Editorgadget Zoom übernehmen

Verfasst: 15.04.2016 10:22
von Velindos
Hallo Leute,
wollte einfach von einen Editorgadgt den Zoom auf das zweite Editorgadget übertragen.

Code: Alles auswählen

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2894&highlight=
; Author: Rings (improved version by Then)
; Date: 21. November 2003
; OS: Windows
; Demo: No
Global Zoomnumerator = 0
Global Zoomdenominator = 0

#WindowWidth  = 600 
#WindowHeight = 800 

If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "PureBasic - EditorGadget Zooming", #PB_Window_MinimizeGadget) 
	If CreateGadgetList(WindowID(0)) 
		rhwnd=EditorGadget(0,1,60,#WindowWidth  ,400-60) 
		rhwnd1=EditorGadget(3,1,460,#WindowWidth  ,400-60) 
		SetGadgetText(0,"Purebasic rocks!") 
		SetGadgetText(3,"Purebasic rocks!") 
		SetGadgetFont(0,LoadFont(1,"Arial",12)) 
		Maxrange=300 
		MaxD=Maxrange/64 +1 
		TrackBarGadget(1, 1, 1, #WindowWidth, 40, 1, Maxrange ) 
		TextGadget(2,2,40,400,14,"Set Zooming of Editgadget with Trackbar") 
		ButtonGadget(4,1,420,200,20,"Zoom übernehmen!")
	EndIf 
	
	Repeat 
		EventID = WaitWindowEvent() 
		If EventID = #PB_Event_Gadget 
			If EventGadget()=1 
				Value=GetGadgetState(1) 
				lRet=SendMessage_(rhwnd,#EM_SETZOOM,Value,10) 
				If lRet=0 
					Debug "Error, Cannot set new zooming Range" 
				EndIf 
			EndIf 
			
			If EventGadget()=4
				Debug "Hier mein Ansatz"
				SendMessage_(0, #EM_GETZOOM, @Zoomnumerator, @Zoomdenominator)
				Debug Zoomnumerator
				Debug Zoomdenominator
				
				lRet=SendMessage_(WorkEditorGadget, #EM_SETZOOM, @Zoomnumerator, @Zoomdenominator)
				If lRet=0 
					Debug "Error, Cannot set new zooming Range" 
				EndIf 
				
			EndIf
			
		EndIf 
	Until EventID = #PB_Event_CloseWindow 
EndIf 
; ExecutableFormat=
; FirstLine=1
; EnableXP
; EOF
Jemand einen Tip?

Gruss ... Velindos

Re: Editorgadget Zoom übernehmen

Verfasst: 15.04.2016 10:29
von RSBasic
Du kannst bei WinAPI keine PB-Gadgetnummer übergeben. Das kennt Windows nicht. Diese Gadgetnummer sind nur in PB gültig. Stattdessen musst du die Handle-Nummer angeben:

Code: Alles auswählen

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2894&highlight=
; Author: Rings (improved version by Then)
; Date: 21. November 2003
; OS: Windows
; Demo: No
Global Zoomnumerator = 0
Global Zoomdenominator = 0

#WindowWidth  = 600
#WindowHeight = 800

If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "PureBasic - EditorGadget Zooming", #PB_Window_MinimizeGadget)
  If CreateGadgetList(WindowID(0))
    rhwnd=EditorGadget(0,1,60,#WindowWidth  ,400-60)
    rhwnd1=EditorGadget(3,1,460,#WindowWidth  ,400-60)
    SetGadgetText(0,"Purebasic rocks!")
    SetGadgetText(3,"Purebasic rocks!")
    SetGadgetFont(0,LoadFont(1,"Arial",12))
    SetGadgetFont(3,LoadFont(1,"Arial",12))
    Maxrange=300
    MaxD=Maxrange/64 +1
    TrackBarGadget(1, 1, 1, #WindowWidth, 40, 1, Maxrange )
    TextGadget(2,2,40,400,14,"Set Zooming of Editgadget with Trackbar")
    ButtonGadget(4,1,420,200,20,"Zoom übernehmen!")
  EndIf
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      If EventGadget()=1
        Value=GetGadgetState(1)
        lRet=SendMessage_(rhwnd,#EM_SETZOOM,Value,10)
        If lRet=0
          Debug "Error, Cannot set new zooming Range"
        EndIf
      EndIf
      
      If EventGadget()=4
        Debug "Hier mein Ansatz"
        Debug "Und hier die Verbesserung"
        SendMessage_(GadgetID(0), #EM_GETZOOM, @Zoomnumerator, @Zoomdenominator)
        Debug Zoomnumerator
        Debug Zoomdenominator
        
        lRet=SendMessage_(GadgetID(3), #EM_SETZOOM, Zoomnumerator, Zoomdenominator)
        If lRet=0
          Debug "Error, Cannot set new zooming Range"
        EndIf
        
      EndIf
      
    EndIf
  Until EventID = #PB_Event_CloseWindow
EndIf
; ExecutableFormat=
; FirstLine=1
; EnableXP
; EOF

Re: Editorgadget Zoom übernehmen

Verfasst: 15.04.2016 11:06
von Velindos
Hallo,
das funzt, DANKE!
Du kannst bei WinAPI keine PB-Gadgetnummer übergeben. Das kennt Windows nicht
Wusste ich noch nicht! Habe bis dato im "#Gadget" verwendet, Danke!

Gruss ... Velindos