PureBoard
https://www.purebasic.fr/german/

SpiderBasic Library - Liste neuer Funktionen
https://www.purebasic.fr/german/viewtopic.php?f=33&t=31117
Seite 7 von 9

Autor:  RSBasic [ 22.10.2018 15:21 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Ich habe ein paar Codes von dir hinzugefügt:

Und von Danilo: https://forums.spiderbasic.com/viewtopic.php?f=9&t=55

Sehr geile Codes :allright:

Autor:  RSBasic [ 22.10.2018 16:02 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Try und Catch:
Code:
EnableExplicit

Procedure TryCatch(try_callback, catch_callback)
  ! try {
  !   v_try_callback();
  ! } catch(error) {
  !   v_catch_callback(error);
  ! }
 
EndProcedure

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

Procedure MyProc()
  ! own_javascripterror;
 
EndProcedure

Procedure MyErrorProc(error)
  Debug "Error: " + error
  ! console.log("Error: " + v_error.message);
 
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
 
  TryCatch(@MyProc(), @MyErrorProc())
 
EndIf

Autor:  RSBasic [ 22.10.2018 16:18 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Prozedur asynchron aufrufen:
Code:
EnableExplicit

Procedure CallAsynchronFunction(callback, delay)
  ! window.setTimeout(v_callback, v_delay);
 
EndProcedure

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

Procedure Test()
  ButtonGadget(2, 50, 50, 200, 50, "Button was created late.", 0)
 
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  TextGadget(1, 10, 10, 100, 20, "Wait 3 seconds...", 0)
 
  CallAsynchronFunction(@Test(), 3000)
 
EndIf

Autor:  RSBasic [ 22.10.2018 16:22 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

URL ermitteln:
Code:
EnableExplicit

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

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

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

Autor:  RSBasic [ 22.10.2018 16:33 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Weiterleiten auf eine Seite:
Code:
EnableExplicit

Procedure RedirectSite(url.s)
  ! window.location.href = v_url;
 
EndProcedure

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

Procedure GadgetEvent()
  Select EventGadget()
    Case 1
      RedirectSite("https://www.google.de")
  EndSelect
 
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 100, 20, "To Google", 0)
 
  BindEvent(#PB_Event_Gadget, @GadgetEvent())
 
EndIf

Autor:  RSBasic [ 22.10.2018 16:43 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Seite zurück und vorwärts springen:
Code:
EnableExplicit

Procedure BackSite()
  ! window.history.back();
 
EndProcedure

Procedure ForwardSite()
  ! window.history.forward();
 
EndProcedure

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

Procedure GadgetEvent()
  Select EventGadget()
    Case 1
      ! window.location.href = window.location.href + "?test=123";
    Case 2
      BackSite()
    Case 3
      ForwardSite()
  EndSelect
 
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
  ButtonGadget(1, 10, 10, 480, 50, "Redirect this site to test to be able to use the buttons.", 0)
  ButtonGadget(2, 10, 80, 20, 20, "<", 0)
  ButtonGadget(3, 30, 80, 20, 20, ">", 0)
 
  BindEvent(#PB_Event_Gadget, @GadgetEvent())
 
EndIf

Autor:  RSBasic [ 22.10.2018 19:35 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Es gibt jetzt AnkerGadget(), um zu beliebigen Abschnitten zu springen:
Code:
EnableExplicit

Procedure AnkerGadget(windowid, id_name.s, x, y)
  ! var AnkerGadget = document.createElement('a');
  ! AnkerGadget.name = v_id_name;
  ! AnkerGadget.className = "SB_AnkerGadget";
  ! AnkerGadget.style.cssText = "position: absolute; left: " + v_x + "px; top: " + v_y + "px; width: 0px; height: 0px;";
  ! v_windowid.content.appendChild(AnkerGadget);
 
EndProcedure

Procedure OpenWindowEx(window, y, x, innerwidth, innerheight, Title.s, Flags, ParentID)
  Protected ReturnValue
 
  ReturnValue = OpenWindow(window, y, x, innerwidth, innerheight, Title, Flags, ParentID)
 
  If Flags & #PB_Window_Background
    ! spider_WindowID(v_window).contentFrame.style.overflow = "auto";
    If innerwidth > 0
      ! spider_WindowID(v_window).content.style.width = v_innerwidth + "px";
    EndIf
    If innerheight > 0
      ! spider_WindowID(v_window).content.style.height = v_innerheight + "px";
    EndIf
  EndIf
 
  ProcedureReturn ReturnValue
EndProcedure

Macro OpenWindow(Window, y, x, InnerWidth, InnerHeight, Title, Flags = 0, ParentID = 0)
  OpenWindowEx(Window, y, x, InnerWidth, InnerHeight, Title, Flags, ParentID)
EndMacro

Procedure RedirectSite(url.s)
  ! window.location.href = v_url;
 
EndProcedure

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

Procedure GadgetEvent()
  Select EventGadget()
    Case 1
      RedirectSite("#MyAnker")
  EndSelect
 
EndProcedure

If OpenWindow(0, 0, 0, 0, 3000, "Window", #PB_Window_Background)
  HyperLinkGadget(1, 10, 10, 100, 20, "Jump to anker", RGB(0, 0, 255), #PB_HyperLink_Underline)
 
  AnkerGadget(WindowID(0), "MyAnker", 0, 2000)
  TextGadget(2, 10, 2000, 200, 20, "Hello, good, you're here now. :-)", 0)
 
  BindEvent(#PB_Event_Gadget, @GadgetEvent())
 
EndIf

Autor:  ccode_new [ 22.10.2018 19:41 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Hallo!

Ich hätte noch ein paar Plätzchen/ Kekse zu vergeben. :mrgreen:

Code:
Global.s SuperMerker, wer, ltime

;Beispiel für UTC-Time: "Mon, 22 Oct 2018 20:15:00"
;UTC ist nicht unbedingt die Zeit auf deinen Uhren.
;UTC = Coordinated Universal Time = abgestimmte Weltzeit

Procedure.s GetLocalTime(utc_time.s)
  ! var udate = new Date(v_utc_time)
  ! var ldate = new Date(Date.UTC(udate.getFullYear(), udate.getMonth(), udate.getDate(), udate.getHours(), udate.getMinutes(), udate.getSeconds()))
  ! return ldate
EndProcedure

Procedure.s GetUTCTime(local_time.s)
  ! var ldate = new Date(v_local_time)
  ! var udate = new Date(ldate.getUTCFullYear(), ldate.getUTCMonth(), ldate.getUTCDate(), ldate.getUTCHours(), ldate.getUTCMinutes(), ldate.getUTCSeconds());
  ! return udate
EndProcedure

Procedure SetCookie(name.s, value.s, utc_time.s = "0")
  If utc_time = "0"
    ! document.cookie = v_name + "=" + v_value + "; path=/;"
  Else ;läuft ab... (Standard: Läuft beim schließen des Browsers ab.)
    ! document.cookie = v_name + "=" + v_value + "; expires=" + v_utc_time + " UTC; path=/;"
  EndIf
EndProcedure

Procedure.s GetCookie(name.s)
  Protected c.s, out.s, pos.i
  ! v_c = document.cookie;
  For pos = 0 To Len(c)
    out = StringField(c, pos, ";")
    If FindString(out, name) > 0
      out = StringField(out, 2, "=")
      Break
    EndIf
  Next pos
  ProcedureReturn out
EndProcedure

SuperMerker = GetCookie("MeinKeks")

If SuperMerker <> ""
  ! alert("Willkommen zurück: " + v_supermerker);
Else
  ltime = GetLocalTime("Mon, 22 Oct 2018 18:15:00")
  ! v_wer = prompt("Wie heißen Sie ?", "");
  SetCookie("MeinKeks", wer, GetUTCTime("Mon, 22 Oct 2018 20:15:00"))
  ! alert("Ich merke mir deinen Namen bis zum folgenden Datum:\n"+ v_ltime);
EndIf

Autor:  RSBasic [ 22.10.2018 19:49 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Danke für deinen Code, den ich in meinem Inhaltsverzeichnis aufgenommen habe. :allright:
Ich hätte aber gerne echte Kekse. :mrgreen:

Autor:  RSBasic [ 22.10.2018 20:23 ]
Betreff des Beitrags:  Re: SpiderBasic Library - Liste neuer Funktionen

Jetzt gibt es YouTubeGadget():
Code:
EnableExplicit

Procedure YouTubeGadget(windowid, gadget, x, y, width, height, video_id.s, autoplay, startposition, endposition, withcontrol, withfullscreen, nocookie)
  Protected domain.s
  Protected video_endposition.s
 
  If nocookie
    domain = "https://www.youtube-nocookie.com"
  Else
    domain = "https://www.youtube.com"
  EndIf
 
  ! var YouTubeGadget = document.createElement('iframe');
  ! YouTubeGadget.id = "SB_Gadget_" + v_gadget;
  ! YouTubeGadget.width = v_width;
  ! YouTubeGadget.height = v_height;
  ! YouTubeGadget.className = "SB_YouTubeGadget";
  If withfullscreen
    ! YouTubeGadget.setAttribute('allowFullScreen', '');
  EndIf
  If endposition
    video_endposition = "&end=" + Str(endposition)
  EndIf
  ! YouTubeGadget.style.cssText = "position: absolute; left: " + v_x + "px; top: " + v_y + "px; width: " + v_width + "px; height: " + v_height + "px;";
  ! YouTubeGadget.src = v_domain + "/embed/" + v_video_id + "?start=" + v_startposition + v_video_endposition + "&autoplay=" + v_autoplay + "&controls=" + v_withcontrol;
  ! v_windowid.content.appendChild(YouTubeGadget);
 
EndProcedure

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

If OpenWindow(0, 0, 0, 820, 620, "Window", #PB_Window_ScreenCentered)
  YouTubeGadget(WindowID(0), 1, 10, 10, 800, 600, "cM8H5Tu3Hjk", 1, 120, 0, 1, 1, 0)
 
EndIf


@NicTheQuick
Bekomme ich Geld für die Werbung? :D

Seite 7 von 9 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/