Infos zu Objekten und Handles bzw. Nummern hier:
http://www.purebasic.com/german/documen ... jects.html
und hier:
http://www.purebasic.com/german/documen ... ndles.html
Zum erstellen eines Fensters:
Es kommt darauf an, was das Fenster beinhaltet. Ein einfacher, nicht größenveränderbarer Dialog läßt sich mit einem
GUI Designer recht komfortabel erstellen. Eine größenveränderbares Fenster, deren Hauptelement ein Editor, ListView
oder ähnliches ist, sollte man besser ohne GUI Designer erstellen, da man sowieso berechnungen Anstellen muß, also
abstand zu Fenster/anderem Gadget usw. und diese Berechnungen auch im ResizeEvent benötigt. Designer erstellen
nunmal nur mit fixen Werten, die hierbei nicht besonders nützlich sind, zu mal so eine GUI ja meist auch in der Grösse
erstellt wird, wie sie zu letzt geöffnet war.
Gruß
Thomas
// edit:
Hier noch ein Beispiel für ein resizebares Fenster, das sollte Dir klarmachen, das ein GUI Designer hier bei der Erstellung
nicht besonders hilfreich ist:
Code: Alles auswählen
EnableExplicit
Structure Prefs
X.i
Y.i
H.i
W.i
EndStructure
Global Prefs.Prefs
Procedure CreateMainWindow()
With Prefs
If OpenWindow(0, \X, \Y, \W, \H, "bla", #PB_Window_SizeGadget | #PB_Window_SystemMenu)
EditorGadget(0, 10, 10, WindowWidth(0) - 60, WindowHeight(0) - 20)
ButtonGadget(1, WindowWidth(0) - 40, 10, 30, 30, "Stop")
EndIf
EndWith
EndProcedure
Procedure LoadPrefs()
OpenPreferences("einstellungen.prefs")
With Prefs
\X = ReadPreferenceInteger("X", #PB_Ignore)
\Y = ReadPreferenceInteger("Y", #PB_Ignore)
\H = ReadPreferenceInteger("H", 480)
\W = ReadPreferenceInteger("W", 640)
EndWith
ClosePreferences()
EndProcedure
Procedure MainLoop()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_SizeWindow
ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(0) - 60, WindowHeight(0) - 20)
ResizeGadget(1, WindowWidth(0) - 40, #PB_Ignore, #PB_Ignore, #PB_Ignore)
EndSelect
ForEver
EndProcedure
Procedure Main()
LoadPrefs()
CreateMainWindow()
MainLoop()
; SavePrefs()
; usw.
EndProcedure
Main()