Frage zum Visual Designer in Verbinfung mit PureBasic

Anfängerfragen zum Programmieren mit PureBasic.
Looki
Beiträge: 11
Registriert: 19.07.2006 00:26
Kontaktdaten:

Frage zum Visual Designer in Verbinfung mit PureBasic

Beitrag von Looki »

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?
PureBasic v3.94 (Windows - x86) hab ich.
pankgraf
Beiträge: 29
Registriert: 10.07.2006 21:36
Wohnort: Berlin
Kontaktdaten:

Beitrag von pankgraf »

Hallo Looki!

Willkommen im Forum.
Damit dir jemand helfen kann, müßtest du
  • a) schreiben welche PB-Version du dir geholt hast
    b) deinen Code hierher kopieren.
Viel Spaß mit PureBasic wünscht dir pankgraf
Looki
Beiträge: 11
Registriert: 19.07.2006 00:26
Kontaktdaten:

Danke für deine schnelle Antwort ^^

Beitrag von Looki »

also ich habe PureBasic v3.94 (Windows - x86)




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.
pankgraf
Beiträge: 29
Registriert: 10.07.2006 21:36
Wohnort: Berlin
Kontaktdaten:

Beitrag von pankgraf »

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.

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
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

Beitrag von ts-soft »

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!
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
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

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)
Looki
Beiträge: 11
Registriert: 19.07.2006 00:26
Kontaktdaten:

Beitrag von Looki »

Danke, euch allen. Aber ich werde ts-softs eg nehmen. Hab das schon gesehen, wusste aber nicht was dann passiert

*peinlich*

Naja, danke!


edit: es geht trotzdem noch nicht auf :(
PureBasic v3.94 (Windows - x86) hab ich.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> edit: es geht trotzdem noch nicht auf :(

Code: Alles auswählen

Open_Window_0()
Repeat
Until event = #PB_Event_CloseWindow 
Grüße ... Kiffi
a²+b²=mc²
Looki
Beiträge: 11
Registriert: 19.07.2006 00:26
Kontaktdaten:

Beitrag von Looki »

Danke, aber da ich dere absolute noob in PB bin ,weiss ich nicht, wo ich den Code einbinden muss! :oops:


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.
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

Beitrag von ts-soft »

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
für PB3.94, ansonsten die Kommentare verschieben :wink:
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