Seite 2 von 2

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Verfasst: 19.06.2012 23:37
von Salafat
Im Übrigen ist der VisualDesigner leider schon sehr veraltet, hat viele Fehler, und sollte gerade in den neueren PB-Versionen nicht mehr genutzt werden.
Gibt es eine (gute) Alternative zum VisualDesigner? Oder programmierst Du Deine Fenster ohne jedes Werkzeug?

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Verfasst: 19.06.2012 23:43
von NicTheQuick
Die letzte Zeit mache ich kaum bis gar keine Fenster mit PB, da ich Dank des Informatikstudiums kaum noch Zeit dafür habe. Aber früher habe ich immer die komplette GUI selbst programmiert. Ich fand das einfach immer wesentlich dynamischer.
Aber es gibt andere Visual Designer. Aber warte dann lieber auf die Antworten den anderen, die sich damit auskennen. :wink:

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Verfasst: 20.06.2012 07:53
von RSBasic
Ich schreibe die Benutzeroberfläche meiner Fenster immer selbst, weil ich das schon immer tat.
Ob man lieber mit oder ohne VD seine Fenster/Forms erstellt, kann man nicht sagen. Es gibt Leute, die schreiben lieber selber ihre Gadgets und es gibt Leute, die finden es bequemer, ihre Gadgets mit einem visuellen Form-Editor wie bei anderen Programmiersprachen zu erstellen.

Niemand kann dir sagen, ob mit oder ohne VD besser ist, seine Benutzeroberfläche zu erstellen.
Teste einfach die vorhandenen VDs und entscheide selbst, was dir am meisten gefällt:
-Selber coden
-PureFORM (kostenlos)
-PureVision (kostenpflichtig, du kannst ja erstmal die Demo herunterladen)

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Verfasst: 20.06.2012 14:19
von Nino
Es gibt auch noch PBDev (kostenlos, wird aber wohl nicht mehr weiterentwickelt).

Grüße, Nino

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Verfasst: 20.06.2012 14:43
von ts-soft
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()