SpiderBasic Library - Liste neuer Funktionen

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
dige
Beiträge: 1179
Registriert: 08.09.2004 08:53

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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:
Bild
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag 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.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
dige
Beiträge: 1179
Registriert: 08.09.2004 08:53

Re: SpiderBasic Library - Liste neuer Funktionen

Beitrag von dige »

@Stevie1401: es werden nur die Scrollbalken aktiviert, damit der Nutzer scrollen kann. Im Prinzip wird nur der Style "overflow: auto;" hinzugefügt.
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Antworten