[Gelöst] Probleme mit SetGadgetLayout

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Midimaster

Betreff: [Gelöst] Probleme mit SetGadgetLayout

BeitragDo, Mai 19, 2011 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
In der MAXGui kann man den Gadgets Layout-Regeln mitgeben. Allerdings misslingt es mir, dem Gadget beizubringen, es möge immer die gleiche Breite haben, auch wenn das Mutter-Fenster verkleinert wird.

Da auch beim Flag EDGE_ALIGNED die rechten Ecken mit dem Mutterfenster verändert werden, wird das Panel immer kleiner. Das hat zur Folge, das die Elemente im Panel dann doch noch links aus dem Bild wandern.

Mache ich hier was falsch?

Ich hätte gerne, das die Bedienelemente am linken Rand beginnen und dort auch bleiben, wenn der User das Fenster verkleinert.

hier ein Code-Beispiel:
BlitzMax: [AUSKLAPPEN]
Import MaxGUI.Drivers

Local flags%=WINDOW_DEFAULT|WINDOW_CLIENTCOORDS|WINDOW_CENTER

Global Window:Tgadget= CreateWindow("Test" , 0 , 0 , 1000 , 800 , Null , Flags%)

Global Canvas:Tgadget=CreateCanvas(10 , 10 , 900 , 500 , Window)
SetGadgetLayout Canvas , EDGE_ALIGNED,EDGE_ALIGNED,0,0

panel=CreatePanel(10,500,900,300,Window,PANEL_BORDER)
SetGadgetLayout panel , EDGE_ALIGNED,EDGE_ALIGNED, EDGE_ALIGNED,EDGE_ALIGNED

Button:Tgadget=CreateButton("ABCDEFG",30,30,100,50,panel,0)


While WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
If EventSource()=Window Then
FreeGadget canvas
End
EndIf
Case EVENT_GADGETPAINT


Local Fenster:TGraphics=CanvasGraphics(canvas)
SetGraphics Fenster
SetClsColor 255,255,255
Cls
SetColor 255,0,0
DrawOval 100,100,80,80
Flip 0

End Select
Wend


Seltsamerweise scheint im Gegensatz zum Panel das Canvas den linken Uursprung x=0 bei Verkleinerung des Fensters beizubehalten. Der obere Ursprung Y=0 wird aber nach oben verschoben....

Und gleich noch ein zweites Problem: Das Canvas produziert Pixel-Müll, wenn man das Mutterfenster zu weit aufzieht. Vielleicht weiß auch hier jemand Rat.

[EDIT]

Oh ich Trampel.... ich hab die Lösung gefunden....

Zitat:
Function SetGadgetLayout( gadget:TGadget,Left,Right,Top,Bottom )

ich dachte die Kordinaten wäre in dieser Reihenfolge X1,Y1,X2,Y2, dabei ist der 2. Parameter wieder eine X-Kordinate nämlich der rechte Rand!

Also funktioniert es mit...
BlitzMax: [AUSKLAPPEN]
SetGadgetLayout panel, 1,0,1,0

...wie erwartet

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group