Seite 8 von 9

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 23.10.2018 09:36
von RSBasic
Mit dieser Funktion kann man Gadgets in ein anderes Fenster verschieben:

Code: Alles auswählen

EnableExplicit

Procedure MoveGadget(gadget, target_windowid)
  ! var GadgetElement = $(spider_GadgetID(v_gadget).div);
  ! GadgetElement.appendTo(v_target_windowid.content);
  
EndProcedure

;================================================== Beispielcode ==================================================

Procedure GadgetEvent()
  Select EventGadget()
    Case 2
      MoveGadget(1, WindowID(1))
    Case 3
      MoveGadget(1, WindowID(0))
  EndSelect
 
EndProcedure

If OpenWindow(0, 100, 100, 300, 200, "Window 1")
  ButtonGadget(1, 10, 10, 100, 20, "Button 007", 0)
  ButtonGadget(2, 120, 10, 150, 20, "Move button 007 >>", 0)
  ButtonGadget(3, 120, 40, 150, 20, "<< Move button 007", 0)
  
  BindEvent(#PB_Event_Gadget, @GadgetEvent())
  
EndIf

If OpenWindow(1, 500, 100, 300, 200, "Window 2")
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 23.10.2018 10:27
von RSBasic
Browser-Name ermitteln:

Code: Alles auswählen

EnableExplicit

Procedure.s GetBrowserName()
  ! return platform.name;
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  Debug GetBrowserName()
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 23.10.2018 10:28
von RSBasic
Browser-Version ermitteln:

Code: Alles auswählen

EnableExplicit

Procedure.s GetBrowserVersion()
  ! return platform.version;
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  Debug GetBrowserVersion()
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 23.10.2018 10:28
von RSBasic
Browser-Engine ermitteln:

Code: Alles auswählen

EnableExplicit

Procedure.s GetBrowserEngine()
  ! return platform.layout;
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  Debug GetBrowserEngine()
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 23.10.2018 11:17
von RSBasic
Mit dieser Funktion kann man eine interne oder externe Seite in einem Popup-Fenster aufrufen:

Code: Alles auswählen

EnableExplicit

Procedure OpenDialog(url.s, x, y, width, height, showtoolbar, showscrollbars)
  Protected specs.s
  
  If x <> #PB_Ignore
    specs + "left=" + x + ","
  EndIf
  If y <> #PB_Ignore
    specs + "top=" + y + ","
  EndIf
  specs + "width=" + width + ",height=" + height + ",toolbar=" + showtoolbar + ",scrollbars=" + showscrollbars
  
  ! window.open(v_url, "", v_specs);
  
EndProcedure

Procedure.s GetSiteURL()
  ! return window.location;
 
EndProcedure

;================================================== Beispielcode ==================================================

Procedure GadgetEvent()
  Select EventGadget()
    Case 1
      ;OpenDialog("http://www.google.de", #PB_Ignore, #PB_Ignore, 500, 400, 0, 1)
      OpenDialog(GetSiteURL(), #PB_Ignore, #PB_Ignore, 500, 400, 0, 1)
  EndSelect
  
EndProcedure

If OpenWindow(0, 0, 0, 400, 300, "Window", #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 200, 20, "Open site in dialog", 0)
  
  BindEvent(#PB_Event_Gadget, @GadgetEvent())
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 25.10.2018 09:32
von RSBasic
Die Möglichkeit, einen Placeholder-Text hinzuzufügen, besteht nur beim StringGadget, aber nicht beim EditorGadget und andere Input-Gadgets. Jetzt es ist auch beim EditorGadget, SpinGadget, DateGadget und ComboBoxGadget möglich. Außerdem kann man den Placeholder-Text auch jederzeit wieder ändern:

Code: Alles auswählen

EnableExplicit

Procedure SetGadgetPlaceHolder(gadget, text.s)
  ! var GadgetElement = $(spider_GadgetID(v_gadget).div);
  
  Select GadgetType(gadget)
    Case #PB_GadgetType_String, #PB_GadgetType_Spin, #PB_GadgetType_Date, #PB_GadgetType_ComboBox
      ! GadgetElement.find("input").attr("placeholder", v_text);
    Case #PB_GadgetType_Editor
      ! GadgetElement.find("textarea").attr("placeholder", v_text);
  EndSelect
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  StringGadget(1, 10, 10, 200, 20, "", 0)
  EditorGadget(2, 10, 40, 200, 200, 0)
  SpinGadget(3, 10, 250, 90, 20, 0, 100, 0)
  ComboBoxGadget(4, 110, 250, 100, 20, #PB_ComboBox_Editable)
  
  SetGadgetPlaceHolder(1, "Hello")
  SetGadgetPlaceHolder(2, "Hola")
  SetGadgetPlaceHolder(3, "Hallo")
  SetGadgetPlaceHolder(4, "Hallo")
  
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 06.02.2019 15:27
von dige
Danke RSBasic, für deine Erweiterungen. Habe ich schon öfters gebrauchen können.

Da ich eben noch für ein TextGadget (), das ich zur Anzeige von Html verwende, den Scrollbalken aktivieren musste,
hier eine Adaption:

Code: Alles auswählen

Procedure Gadget_Enable_AutoScroll (gadget)
  Protected styles.s
  Protected id.s
 
  ;Falls nicht existiert, dann <style type="text/css" id="SBCustomStyles"></style> im Head erstellen, ohne Inline-Styles verwenden zu müssen
  ! if (!document.getElementById('SBCustomStyles')) {
  !   var StyleElement = document.createElement('style');
  !   StyleElement.type = 'text/css';
  !   StyleElement.id = 'SBCustomStyles';
  !   var HeadElement = document.getElementsByTagName('head')[0];
  !   HeadElement.appendChild(StyleElement);
  ! }
 
  ;Falls nicht existiert, dann eine ID im Hauptelement erstellen, um später per CSS besser darauf zugreifen zu können
  ! var GadgetElement = $(spider_GadgetID(v_gadget).div);
  ! if (GadgetElement.attr("id")) {
  !   v_id = GadgetElement.attr("id");
  ! } else {
  !   GadgetElement.attr("id", "SB_Gadget_" + v_gadget);
  !   v_id = GadgetElement.attr("id");
  ! }
 
  styles = "#" + id + " { overflow: auto; }"
 
  ;Styles hinzufügen
  ! document.getElementById("SBCustomStyles").appendChild(document.createTextNode( v_styles ));
 
EndProcedure

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 06.02.2019 15:55
von NicTheQuick
RSBasic hat geschrieben:@NicTheQuick
Bekomme ich Geld für die Werbung? :D
Gerade erst gesehen, weil ich normalerweise nichts zu Spiderbasic lese. :lol:
Ich kann dir leider nichts anbieten. :wink:

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 07.02.2019 10:28
von stevie1401
dige, ich habe deine Procedure eben getestst. Da scrollt aber nichts automatisch runter.
Oder habe ich da was falsch verstanden?
Wie muss die Procedure eingesetzt werden?


Nachdem ich einem Textgadget einen Text hinzugefügt gabe, muss ich zudem:

Code: Alles auswählen

 !$(v_chatid.div).animate({scrollTop: $(v_chatid.div).prop("scrollHeight")}, 0);
machen, sonst wird nicht gescrollt.

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 07.02.2019 10:52
von dige
@Stevie1401: es werden nur die Scrollbalken aktiviert, damit der Nutzer scrollen kann. Im Prinzip wird nur der Style "overflow: auto;" hinzugefügt.