Seite 1 von 1

splittergadget

Verfasst: 20.12.2010 19:46
von delikanli_19_82
hallo leute,

ich bin mir nicht sicher, was ich falsch gemacht habe. hab den ganzen code aus frustation weggelöscht.

ich möchte eigentlich auf einem fenster sowas haben:

----------------------------------------
toolbar
----------------------------------------
|.........| Mitte oben|................|
|.........|................| Rechts oben |
| Links |---------------| ------------- |
|.........|................| Rechts unten |
|.........|Mitte Unten|................|
|.........|................|................|
----------------------------------------
Statusbar
----------------------------------------

- Links, Mitte und Rechts sollen horizontal splittbar sein.
- Auch wenn der Fenster in der Größe verändert wird.

- Mitte und Rechts sollen auch vertikal splittbar sein.
- Auch wenn der Fenster in der Größe verändert wird.

- In Links wird ein ScrollAreaGadget liegen, das die
größe anpasst.

- Mitte oben aiuch ScrollArea.
- Mitte unten sowie rechts oben und unten jeweils ContainerGagdet.

kann mir jemand helfen?

in meinem code hatte ich ständig das problem, das beim resizen des Fensters, die besagten gaeiledgets die
größenanpassung nicht machten.

und der rechte teile verschob sich mit der mittleren splitter komplett.

mfg
kurt

Re: splittergadget

Verfasst: 20.12.2010 21:00
von TomS
delikanli_19_82 hat geschrieben:gaeiledgets
Bitte was?
Sorry, ich kann mit deinem "Ascii-Diagramm" nichts anfangen. Kannst du nicht wenigstens was halbwegs ordentliches mit Paint malen?
Die Gadgets musst du schon selber resizen.

Code: Alles auswählen

OpenWindow(0, 0, 0, 200, 200, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ButtonGadget(0,0,0,200,200,"Button")

Repeat
	event = WaitWindowEvent(20)
	
	Select event
		Case #PB_Event_SizeWindow
			ResizeGadget(0, 0, 0, WindowWidth(0), WindowHeight(0))
	EndSelect 
		
Until event = #PB_Event_CloseWindow

Re: splittergadget

Verfasst: 20.12.2010 21:27
von delikanli_19_82
hallo TomS,

als diagramm:

www.gonuldefterim.de/abbild.JPG

ja zum resizen der elemente muss ich eben wissen, wie die abmaße des linken, rechten, oben, unteren splittanteils für den betroffenen containergadget/scrollareagadgets aussehen, damit ich den korrekt resizen kann.

das es geresized werden muss, ist mir schon klar. ich weiß nur nicht, wie ich an die werte komme. welche befehle ich dazu verwenden muss. zum beispiel die sache mit dem gadgetwidth/gadgetheight bringt mir nichts, da es die gesamtabmaße der splittergadgets gibt. klar kann ich die auch auf die container anwenden, aber der ereignis, während der splitter geslidet wird, ist mir nicht bekannt.

mfg
kurt

Re: splittergadget

Verfasst: 20.12.2010 21:56
von Kiffi
Du musst Dir einfach vergegenwärtigen, dass ein SplitterGadget
immer nur zwei Gadgets aufnehmen kann.

Also:

'Mitte oben' und 'Mitte unten' -> SplitterGadget1
'Rechts oben' und 'Rechts unten' -> SplitterGadget2
'SplitterGadget1' und 'SplitterGadget2' -> SplitterGadget3
'Links' und 'SplitterGadget3' -> SplitterGadget4

Und schon hast Du es :-)

Grüße ... Kiffi

Re: splittergadget

Verfasst: 20.12.2010 23:33
von TomS

Code: Alles auswählen

Enumeration
	#Links
	#MitteOben
	#MitteUnten
	#RechtsOben
	#RechtsUnten
	
	#Splitter_Links_Rest
	#Splitter_Mitte_Rechts
	#Splitter_Mitte
	#Splitter_Rechts
EndEnumeration

OpenWindow(0, 0, 0, 800, 600, "SplitterGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)

ButtonGadget(#Links, 0, 0, 0, 0, "Links")
ButtonGadget(#MitteOben, 0, 0, 0, 0, "Mitte oben")
ButtonGadget(#MitteUnten, 0, 0, 0, 0, "Mitte unten")
ButtonGadget(#RechtsOben, 0, 0, 0, 0, "Rechts oben")
ButtonGadget(#RechtsUnten, 0, 0, 0, 0, "Rechts unten")


SplitterGadget(#Splitter_Mitte, 0, 0, 0, 0, #MitteOben, #MitteUnten)
SplitterGadget(#Splitter_Rechts, 0, 0, 0, 0, #RechtsOben, #RechtsUnten)

SplitterGadget(#Splitter_Mitte_Rechts, 0, 0, 0, 0, #Splitter_Mitte, #Splitter_Rechts, #PB_Splitter_Vertical)
SplitterGadget(#Splitter_Links_Rest, 0, 0, WindowWidth(0), WindowHeight(0), #Links, #Splitter_Mitte_Rechts ,#PB_Splitter_Vertical)


Repeat
	event = WaitWindowEvent(20)
	
	Select event
		Case #PB_Event_SizeWindow
			ResizeGadget(#Splitter_Links_Rest, 0, 0, WindowWidth(0), WindowHeight(0))
	EndSelect 
	
Until event = #PB_Event_CloseWindow
Bitte sehr.
delikanli_19_82 hat geschrieben:ja zum resizen der elemente muss ich eben wissen, wie die abmaße des linken, rechten, oben, unteren splittanteils für den betroffenen containergadget/scrollareagadgets aussehen, damit ich den korrekt resizen kann.
Du musst nicht einmal selber etwas resizen, außer das äußerste Splittergadget (im Code letzte, da die verwendeten Gadgets, ja schon existieren müssen) an's Fenster anzupassen.

Wenn in einem Bereich mehr als ein Gadget sein soll, dann nimmst du ein Containergadget und passt die darin befindlichen Gadgets an. Die größe bekommst du ja mit GadgetWidth(#Container) und GadgetHeight(#Container).
Oder eben ein ScrollAreaGadget.

EDIT: Toolbar und Statusbar hab ich weggelassen, aber das kriegst du sicher selber hin.
Beim resizen des "Haupt"-Splittergadgets darauf achten, die Höhe der Toolbar und der Statusbar von WindowHeight() abzuziehen.

Re: splittergadget

Verfasst: 08.03.2011 12:26
von delikanli_19_82
vielen dank TomS