Im Beispiel-Code erstelle ich ein ScrollAreaGadget, in dem ist ein Canvas mit der Größe 100x100 (definiert im XML-Code). Nach öffnen des Dialogs vergrößere ich den Scrollbereich und das Canvas auf die benötigte Größe. Bis hierher ist alles O.K.
Wenn ich jedoch die Fenstergröße ändere, ist der Scrollbereich und das Canvas wieder klein.
Code: Alles auswählen
EnableExplicit
Runtime Enumeration Windows
#FormMain
EndEnumeration
Runtime Enumeration Gadgets
#FormMain_Scrollarea_1
#FormMain_Canvas
EndEnumeration
Define XML$, event
XML$ + "<?xml version='1.0' encoding='UTF-16'?>"
XML$ + ""
XML$ + "<dialogs>"
XML$ + " <window flags='#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget' name='main' xpos='0' ypos='0' id='#FormMain'>"
XML$ + " <vbox width='400' height='300' expand='item:1'>"
XML$ + " <scrollarea id='#FormMain_Scrollarea_1'>"
XML$ + " <canvas width='100' height='100' id='#FormMain_Canvas'/>"
XML$ + " </scrollarea>"
XML$ + " </vbox>"
XML$ + " </window>"
XML$ + "</dialogs>"
XML$ + ""
ParseXML(0, XML$)
If XMLStatus(0) = #PB_XML_Success
CreateDialog(#FormMain)
If OpenXMLDialog(#FormMain, 0, "main")
; Scrollarea und Canvas vergrößern
SetGadgetAttribute(#FormMain_Scrollarea_1, #PB_ScrollArea_InnerWidth, 600)
SetGadgetAttribute(#FormMain_Scrollarea_1, #PB_ScrollArea_InnerHeight, 400)
ResizeGadget(#FormMain_Canvas, 0, 0, 600, 400)
; Grafik in Canvas
If StartDrawing(CanvasOutput(#FormMain_Canvas))
LineXY(0, 0, 600, 400, #Blue)
LineXY(0, 400, 600, 0, #Blue)
StopDrawing()
EndIf
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
EndIf