Gadget frage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Knight_Rider_2000
Beiträge: 145
Registriert: 05.02.2007 20:46
Kontaktdaten:

Gadget frage

Beitrag von Knight_Rider_2000 »

Hi,
Ich wollt mal wissen ob ihr auch Gadgets für pb kennt die nicht in pb drinne sind und wie sie funktionieren? Mir sind die von pb langsam aber sicher zu wenig.
PB 4.20,Blitz3D 1.98,Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2008 Professional
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

PB ja sehr universell einsetzbar.
Unter "Gadget erstellen mit PB4" (http://www.purebasic.fr/german/viewtopic.php?t=8071) findes Du Hilfe um selbst Gadget zu erstellen.

Fertige Lösungen unterscheiden sich darin wie sie funktionieren (Libs oder PB-Quellcodes (z.B. http://www.purebasic.fr/german/viewtopic.php?t=7982) lassen sich direkt einbinden für andere gibt es APIs oder COM)
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Gadget frage

Beitrag von Fluid Byte »

Knight_Rider_2000 hat geschrieben:Ich wollt mal wissen ob ihr auch Gadgets für pb kennt die nicht in pb drinne sind ...
Ein Widerspruch in sich aber egal. Die einzigen die mir jetzt einfallen sind Hotkey- und Rebar Controls. Hotkey Controls sind praktisch nutzlos und Rebar Controls, sowie jedes andere Gadget was nicht nativ in PB enthalten ist, kann man über API ansteuern. Alles andere, wie z. B. auch das SplitterGadget, sind Ownerdrawn Controls und werden von Windows nicht unterstützt.
Knight_Rider_2000 hat geschrieben:Mir sind die von pb langsam aber sicher zu wenig.
Das müsstest du mal näher erläutern...
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Es gab z.B. auch schon eine Art "WebGadget" (per COM wenn ich mich richtig erinnere) bevor es in PB integriert war.
Unter http://frabbing.de/_listview.html gibt es ein Gadget auf DLL-Basis.
Fluid Byte hat aber recht : Ich würde mich erst dann auf die Suche machen wenn ich konkreten Bedarf an einer Lösung ( z.B. http://www.purebasic.fr/german/viewtopic.php?t=12897) oder einer Technik-Studie für eigene Entwicklung hätte.
Benutzeravatar
Knight_Rider_2000
Beiträge: 145
Registriert: 05.02.2007 20:46
Kontaktdaten:

Beitrag von Knight_Rider_2000 »

Ich habe schon in ein pb programm sowas ähnliches wie die explorerleiste gesehen aber sowas gibt es ja nicht in pb
PB 4.20,Blitz3D 1.98,Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2008 Professional
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Grundsätzlich :
Es gibt Gadgets in PB,
es gibt Gadgets für PB
und es gibt Gadgets die sich aus PB heraus nutzen lassen - auch wenn sie nicht speziell dafür gemacht sind (z.B. DLLs).

Was genau meinst du mit Explorerleiste ?

edit :
Willst Du den Internet Explorer erweitern ?
Wenn Ja :
Bei einem kurzen Abstecher per Google bin ich bis zu dem Wort "COM" gekommen. Ab da wusste ich, dass es für mich keinen Sinn macht weiter zu lesen.
Für Firefox gibt es glaube ich Ähnliches etwas leichter.
Zuletzt geändert von uweb am 09.05.2007 18:23, insgesamt 2-mal geändert.
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 »

Knight_Rider_2000 hat geschrieben:Ich habe schon in ein pb programm sowas ähnliches wie die explorerleiste gesehen aber sowas gibt es ja nicht in pb
Das ist das schöne beim Programmieren, was es nicht gibt, kann
man programmiern :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
Benutzeravatar
Knight_Rider_2000
Beiträge: 145
Registriert: 05.02.2007 20:46
Kontaktdaten:

Beitrag von Knight_Rider_2000 »

ich mein im normalen explorer Links dieser lange blaue Kasten mit verschiedenen Links zu anderen Orten usw
PB 4.20,Blitz3D 1.98,Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2008 Professional
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Wenn es nur so wie beim (aber nicht für den) Internet Explorer sein soll hilft Dir vielleicht folgendes Beispiel :

Code: Alles auswählen

;- Enumerations
;
Enumeration
  #Window_0

  #Tree_Page
  #Panel_0

  #Button_ControlSplitter
  #String_URL
  #Button_Path
  #Button_FTP
  #Button_Sample
  #Radio_vbs
  #Radio_js
  #Editor_Log
  #Button_URL
  #Button_Log
  #Button_go

  #Tree_Style

  #Button_FunctionSplitter
  #Editor_Function
  #Editor_FunctionNr

  #Button_HTMLSplitter
  #Editor_HTML
  #Editor_HTMLNr

  #Button_PreviewSplitter
  #Web_Preview

  #Button_HelpSplitter
  #Web_Help
EndEnumeration


;- Globals
;
;- Procedures
;
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 200, 100, 600, 400, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Window_0))
      TreeGadget(#Tree_Page, 0, 0, 200, 400)
      TreeGadget(#Tree_Style, 0, 0, 200, 400)
      
      ;- Panel0
      PanelGadget(#Panel_0, 200, 0, 405, 405)
        AddGadgetItem(#Panel_0, -1, "Control")
          ButtonGadget(#Button_ControlSplitter, 8, 8, 10, 365, "<")
          StringGadget(#String_URL, 28, 8, 365, 20, "url", #PB_String_ReadOnly)
          ButtonGadget(#Button_Path, 28, 38, 70, 20, "Path")
          ButtonGadget(#Button_FTP, 116, 38, 70, 20, "FTP")
          ButtonGadget(#Button_Sample, 204, 38, 70, 20, "Sample")
          OptionGadget(#Radio_vbs, 38, 73, 140, 25, "vbs")
          OptionGadget(#Radio_js, 38, 93, 140, 25, "js")
          EditorGadget(#Editor_Log, 28, 133, 365, 200)
          ButtonGadget(#Button_URL, 28, 348, 70, 20, "copy URL")
          ButtonGadget(#Button_Log, 116, 348, 70, 20, "copy LOG")
          ButtonGadget(#Button_go, 318, 348, 70, 20, "Start")
        AddGadgetItem(#Panel_0, -1, "Style")
        AddGadgetItem(#Panel_0, -1, "Function")
          ButtonGadget(#Button_FunctionSplitter, 8, 8, 10, 365, "<")
          EditorGadget(#Editor_Function, 68, 8, 325, 365)
          EditorGadget(#Editor_FunctionNr, 28, 8, 42, 365)
        AddGadgetItem(#Panel_0, -1, "HTML")
          ButtonGadget(#Button_HTMLSplitter, 8, 8, 10, 365, "<")
          EditorGadget(#Editor_HTML, 68, 8, 325, 365)
          EditorGadget(#Editor_HTMLNr, 28, 8, 42, 365)
        AddGadgetItem(#Panel_0, -1, "Preview")
          ButtonGadget(#Button_PreviewSplitter, 8, 8, 10, 365, "<")
          WebGadget(#Web_Preview, 28, 8, 365, 365, "about:blank")
        AddGadgetItem(#Panel_0, -1, "Help")
          ButtonGadget(#Button_HelpSplitter, 8, 8, 10, 365, "<")
          WebGadget(#Web_Help, 28, 8, 365, 365, "about:blank")
      CloseGadgetList()

    EndIf
  EndIf
EndProcedure

Procedure TreeVisibility()
  Static TreeVisible=#True, PanelHeight, PanelWidth, PanelX
  If TreeVisible
    HideGadget(#Tree_Page, #True)
    HideGadget(#Tree_Style, #True)
    PanelWidth=GadgetWidth(#Panel_0)
    PanelHeight=GadgetHeight(#Panel_0)
    PanelX=GadgetX(#Panel_0)
    ResizeGadget(#Panel_0, PanelX-200, #PB_Ignore, PanelWidth+200, PanelHeight)
    SetGadgetText(#Button_ControlSplitter, ">") 
    SetGadgetText(#Button_FunctionSplitter, ">")
    SetGadgetText(#Button_HTMLSplitter, ">")
    SetGadgetText(#Button_PreviewSplitter, ">")
    SetGadgetText(#Button_HelpSplitter, ">")  
    SetActiveGadget(#Panel_0)
    TreeVisible=#False
  Else
    ResizeGadget(#Panel_0, PanelX, #PB_Ignore, PanelWidth, PanelHeight)
    HideGadget(#Tree_Page, #False)
    HideGadget(#Tree_Style, #False)
    SetGadgetText(#Button_ControlSplitter, "<") 
    SetGadgetText(#Button_FunctionSplitter, "<")
    SetGadgetText(#Button_HTMLSplitter, "<")
    SetGadgetText(#Button_PreviewSplitter, "<")
    SetGadgetText(#Button_HelpSplitter, "<")  
    SetActiveGadget(#Panel_0)
    TreeVisible=#True
  EndIf
EndProcedure


Open_Window_0()

PureRESIZE_SetWindowMinimumSize(#Window_0, 600, 400)
PureRESIZE_SetGadgetResize(#Tree_Page, #True, #True, #False, #True)
PureRESIZE_SetGadgetResize(#Tree_Style, #True, #True, #False, #True)
PureRESIZE_SetGadgetResize(#Panel_0, #True, #True, #True, #True)

PureRESIZE_SetGadgetResize(#Button_ControlSplitter, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#String_URL, #True, #True, #True, #False, #Panel_0)
PureRESIZE_SetGadgetResize(#Editor_Log, #True, #True, #True, #True, #Panel_0)

PureRESIZE_SetGadgetResize(#Button_URL, #True, #False, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Button_Log, #True, #False, #False, #True, #Panel_0)

PureRESIZE_SetGadgetResize(#Button_go, #False, #False, #True, #True, #Panel_0)


PureRESIZE_SetGadgetResize(#Button_FunctionSplitter, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Editor_FunctionNr, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Editor_Function, #True, #True, #True, #True, #Panel_0)

PureRESIZE_SetGadgetResize(#Button_HTMLSplitter, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Editor_HTMLNr, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Editor_HTML, #True, #True, #True, #True, #Panel_0)

PureRESIZE_SetGadgetResize(#Button_PreviewSplitter, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Web_Preview, #True, #True, #True, #True, #Panel_0)

PureRESIZE_SetGadgetResize(#Button_HelpSplitter, #True, #True, #False, #True, #Panel_0)
PureRESIZE_SetGadgetResize(#Web_Help, #True, #True, #True, #True, #Panel_0)

;- Main
;

Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Button_ControlSplitter
          TreeVisibility()

        Case #Button_FunctionSplitter
          TreeVisibility()
          
        Case #Button_HTMLSplitter
          TreeVisibility()
          
          
        Case #Button_PreviewSplitter
          TreeVisibility()
        Case #Button_HelpSplitter
          TreeVisibility()

      EndSelect
    Case #PB_Event_Menu

  EndSelect
Until Event = #PB_Event_CloseWindow
Du brachst PureRESIZE (unter user-libs auf http://www.purearea.net/pb/german/) um es laufen zu lassen.
Bitte entschuldige das Moster - ich habe einfach einen meiner Codes verwendet statt extra etwas zu erstellen.
Obwohl ich deshalb hier schon prügel bezogen habe denke ich es ist übersichtlich und nachvollziehbar.
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 »

@uweb
Case erlaubt auch mehrere Ausdrücke :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