Rückgabewerte von OpenWindow, CreateGadgetList und LoadFont

Anfängerfragen zum Programmieren mit PureBasic.
Salafat
Beiträge: 30
Registriert: 05.01.2012 07:40
Computerausstattung: AMD FX-8350 Eight-Core-Prozessor 4,00 GHz
8 GB RAM
Windows 7 64-Bit
Wohnort: Berlin

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Beitrag 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?
PureBasic v5.11 x64
Windows 7 64-Bit
AMD FX-8350 Eight-Core Processor 4 GHz, 8 GB Arbeitsspeicher
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Beitrag 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:
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Beitrag 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)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Beitrag von Nino »

Es gibt auch noch PBDev (kostenlos, wird aber wohl nicht mehr weiterentwickelt).

Grüße, Nino
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Rückgabewerte von OpenWindow, CreateGadgetList und LoadF

Beitrag 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()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten