Frage zum Visual Designer in Verbinfung mit PureBasic
Frage zum Visual Designer in Verbinfung mit PureBasic
Hallo
Mir ist gerade mal spotan aufgefallen, das im Programm PureBasic ja ein Designer bei ist
da hab ich mich richtig gefreut.
Aber irgendwie hat er Bugs und man kann Gadgets nich löschen und so aber trotzdem ist er gut
aber zum Thema:
wenn ich "Generate Source" wähle, schreibt er mir ja den Code.
Wenn ich das Programm aber nun in PureBasic starte, öffnet sich gar kein Fenster!
Kann jemand helfen?
Mir ist gerade mal spotan aufgefallen, das im Programm PureBasic ja ein Designer bei ist
da hab ich mich richtig gefreut.
Aber irgendwie hat er Bugs und man kann Gadgets nich löschen und so aber trotzdem ist er gut
aber zum Thema:
wenn ich "Generate Source" wähle, schreibt er mir ja den Code.
Wenn ich das Programm aber nun in PureBasic starte, öffnet sich gar kein Fenster!
Kann jemand helfen?
PureBasic v3.94 (Windows - x86) hab ich.
Danke für deine schnelle Antwort ^^
also ich habe PureBasic v3.94 (Windows - x86)
und hier der Code: (ich hab nichts verändert! Nur im VD rumgetestet ;D)
und hier der Code: (ich hab nichts verändert! Nur im VD rumgetestet ;D)
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_1
EndEnumeration
; BalloonTip Constants
#TOOLTIP_NO_ICON = 0
#TOOLTIP_INFO_ICON = 1
#TOOLTIP_WARNING_ICON = 2
#TOOLTIP_ERROR_ICON = 3
Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText=@Text$
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
If Title$ > ""
SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
EndIf
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 436, 130, 104, 53, #PB_Window_SystemMenu | #PB_Window_TitleBar , "Test")
If CreateGadgetList(WindowID())
ButtonGadget(#Button_1, 24, 17, 61, 26, "Button")
BalloonTip(WindowID(), #Button_1, "ToopTip", "", #TOOLTIP_NO_ICON)
EndIf
EndIf
EndProcedure
PureBasic v3.94 (Windows - x86) hab ich.
Ich verdien mir gerade durch Nachtarbeit etwas Geld dazu. Deshalb steht mir nur die PB 4.0 - Version zur Verfügung. Wundere dich bitte nicht über die veränderte Schreibweise der Befehle!
Wichtig ist nur, daß du die Repeat-Schleife einfügst.
Dann würde ich die Enumeration wie gezeigt verändern.
Die Befehle »Procedure Open_Window_0()« und das dazu gehörige »EndProcedure« würde ich löschen.
Wichtig ist nur, daß du die Repeat-Schleife einfügst.
Dann würde ich die Enumeration wie gezeigt verändern.
Die Befehle »Procedure Open_Window_0()« und das dazu gehörige »EndProcedure« würde ich löschen.
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
#Button_1
EndEnumeration
;- Gadget Constants
; BalloonTip Constants
#TOOLTIP_NO_ICON = 0
#TOOLTIP_INFO_ICON = 1
#TOOLTIP_WARNING_ICON = 2
#TOOLTIP_ERROR_ICON = 3
Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hwnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText=@Text$
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
If Title$ > ""
SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
EndIf
EndProcedure
If OpenWindow(#Window_0, 436, 130, 104, 53, "Test", #PB_Window_SystemMenu | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Button_1, 24, 17, 61, 26, "Button")
BalloonTip(#Window_0, #Button_1, "ToopTip", "", #TOOLTIP_NO_ICON)
EndIf
EndIf
; Wichtig! Diese Repeat-Schleife muß eingefügt werden, sonst wird
; dein Programm blitzartig beendet.
Repeat
event.l = WaitWindowEvent() : EventType.l = EventType()
Tastendr.l = EventGadget()
If EventType = #PB_EventType_LeftClick
Select Tastendr
Case #Button_1
MessageRequester("Viel Spaß mit PB", "Das war es schon")
EndSelect
EndIf : Delay(15)
Until event = #PB_Event_CloseWindow
End
- 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
Im VisualDesigner unter Objekt-Optionen bei Ereignisschleife mitliefern einen Haken setzen. Mehr brauchste nicht tun.
Die Enumeration vom Designer ist auch in Ordnung so. So fängt die Gadgetnummerierung auch bei 0 an (spart minimal Speicher).
Die Fenstererstellung in einer Prozedur würde ich auch unverändert lassen!
Die Enumeration vom Designer ist auch in Ordnung so. So fängt die Gadgetnummerierung auch bei 0 an (spart minimal Speicher).
Die Fenstererstellung in einer Prozedur würde ich auch unverändert lassen!
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

ich würde die fenstererstellugn auch in der prozeduer lassen, dann musste das fenster nur mit
open_window_0() öffnen (jenachdem wie die procedure bei dir heißt)
zu den bug, das er nicht löschen kann: bei mri funktionierts. das gadget einmal anklicken und entf drücken
udn wenn du auch die ereignissschleife mitliefern lässt, dann würde ich persönlcih beide pb dateien in einem ordner speichern.. sonst speichert der VD die include immer in einem speziellen ordner
(ich füge die dateien auch noch zu einer zusammen)
open_window_0() öffnen (jenachdem wie die procedure bei dir heißt)
zu den bug, das er nicht löschen kann: bei mri funktionierts. das gadget einmal anklicken und entf drücken
udn wenn du auch die ereignissschleife mitliefern lässt, dann würde ich persönlcih beide pb dateien in einem ordner speichern.. sonst speichert der VD die include immer in einem speziellen ordner
(ich füge die dateien auch noch zu einer zusammen)
> edit: es geht trotzdem noch nicht auf 
Grüße ... Kiffi

Code: Alles auswählen
Open_Window_0()
Repeat
Until event = #PB_Event_CloseWindow
a²+b²=mc²
Danke, aber da ich dere absolute noob in PB bin ,weiss ich nicht, wo ich den Code einbinden muss!
kannst du mir den vollen code hier für erstellen?
so hab ichs versucht, und da öffnet und schließt er das fenster immer ;_;
Looki

kannst du mir den vollen code hier für erstellen?
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
If CreateGadgetList(WindowID())
ButtonGadget(#Button_0, 84, 91, 232, 137, "test")
EndIf
EndIf
EndProcedure
so hab ichs versucht, und da öffnet und schließt er das fenster immer ;_;
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
EndEnumeration
Repeat
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
If CreateGadgetList(WindowID())
ButtonGadget(#Button_0, 84, 91, 232, 137, "^^")
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Looki
PureBasic v3.94 (Windows - x86) hab ich.
- 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
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
;If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
If CreateGadgetList(WindowID())
;If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Button_0, 84, 91, 232, 137, "test")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
