Kaufmännische Software für Handel, Handwerk und Produktionsbetriebe
Über diese Funktion wird ein Fenster mit einem Web-Browser erzeugt. Das Fenster kann - im Gegensatz zu anderen Dialogfenstern - auch losgelöst vom Programmablauf existieren (nict-modal). Z.B. zum Anzeigen von Statusinformationen oder als Container für Werkzeuge und wichtige Menüpunkte.
Der angezeigte Inhalt kann wahlweise aus einer URL geladen oder direkt als HTML-Quellcode hinterlegt werden.
In diesem Beispiel wird ein Browserfenster erstellt und es wird "Hallo" in das Fenster geschrieben.
VBScript
option explicit
dim wb, b
Set wb = Client.CreateDialog("WebBrowser")
wb.URL = "eulanda://./ALLUSER/BROWSERTEST.htm"
wb.HTMLSource = "<html><H1>HALLO</h1></html>"
wb.Width = 400
wb.Height = 150
wb.show
'Set Wb = Nothing
Dieses Beispiel dient gleichzeitig als Beispiel für die Eigenschaft Properties des Client-Objekts. Im ersten Teil wird hierbei ein HTML-Quelltext erzeugt, der die Werte aller verfügbaren Eigenchaften aus Client.Properties() enthält. Dieser HTML-Quelltext wird dann in einem Webbrowser-Fenster angezeigt.
VBScript
VBScript
option explicit
dim SL, SLOut, i, Html, s, wb
set SL = Client.CreateObject("eulanda.stringlist")
set SLOut = Client.CreateObject("eulanda.stringlist")
SL.ADD ":GLOBAL"
SL.Add "GLOBAL.PRIMARYLANG"
SL.Add "GLOBAL.PRIMARYLOCALE"
SL.Add "GLOBAL.UILANG"
SL.Add "GLOBAL.UILOCALE"
SL.Add "GLOBAL.DEFPRINTLANG"
SL.Add "GLOBAL.DEFPRINTLOCALE"
SL.ADD ":CLIENT"
SL.Add "CLIENT.NUMBER"
SL.ADD ":EXE"
SL.Add "EXE.MAINVERSION"
SL.Add "EXE.SUBVERSION"
SL.Add "EXE.RELEASE"
SL.Add "EXE.BUILD"
SL.Add "EXE.VERSION"
SL.Add "EXE.FULLVERSION"
SL.Add "EXE.UDLFILENAME"
SL.Add "EXE.FULLNAME"
SL.ADD ":WTS"
SL.Add "WTS.CLIENTNAME"
SL.Add "WTS.CLIENTADDRESS"
SL.Add "WTS.DOMAINNAME"
SL.Add "WTS.CLIENTDIRECTORY"
SL.ADD ":FOLDER"
SL.Add "FOLDER.DESKTOP"
SL.Add "FOLDER.WINDOWS"
SL.Add "FOLDER.WINDOWSTEMP"
SL.Add "FOLDER.EULANDATEMP"
SL.Add "FOLDER.EXE"
SL.Add "FOLDER.CLIENT"
SL.Add "FOLDER.CLIENTCACHE"
SL.Add "FOLDER.CLIENTBLOBCACHE"
SL.Add "FOLDER.APPDATA"
SL.Add "FOLDER.CDBURN"
SL.Add "FOLDER.MYDOCUMENTS"
SL.Add "FOLDER.PERSONAL"
SL.Add "FOLDER.INTERNETCACHE"
SL.Add "FOLDER.COOKIES"
SL.Add "FOLDER.HISTORY"
SL.Add "FOLDER.LOCALAPPDATA"
SL.Add "FOLDER.COMMONAPPDATA"
SL.Add "FOLDER.PROGRAMFILES"
SL.Add "FOLDER.MYPICTURES"
SL.Add "FOLDER.MYVIDEO"
SL.Add "FOLDER.PROGRAMFILESCOMMON"
SL.Add "FOLDER.COMMONDOCUMENTS"
SL.Add "FOLDER.COMMONADMINTOOLS"
SL.Add "FOLDER.ADMINTOOLS"
SL.Add "FOLDER.STARTUP"
SL.Add "FOLDER.DATALINKDIR"
SL.Add "FOLDER.UDLLOCALAPPDATA"
SL.ADD ":IEXPLORER"
SL.Add "IEXPLORER.VERSION"
SL.Add "IEXPLORER.MAJORVERSION"
Html = "<PRE>" & vbCrLf
for I = 0 TO SL.Count-1
s = SL.Strings(i)
If left(s,1) <> ":" Then
SLOut.Add "<B>" & s & "</B>"
on error resume next
SLOut.Add " " & Client.Properties(s)
if Err.Number <> 0 Then
SLOut.Add "<span style='color:red'>"&Err.Description&"</span>"
Err.Clear
End IF
Else
s = Right(s,Len(S)-1)
SLOut.Add ""
SLOut.Add "<H3>" & s & "</H3>"
End If
Next
html = "<HTML><PRE>"&SLOut.Text&"</PRE></HTML>"
set SL = Nothing
set SLOut = Nothing
Set wb = Client.CreateDialog("WebBrowser")
wb.HTMLSource = html
wb.Title = "Client.Properties()"
wb.IconUrl = "folder"
wb.Borderstyle = 5
wb.AbortButtonVisible = False
wb.ShowModal
set wb = Nothing
In diesem Beispiel wird auf das Löschen einer Datei gewartet. Das ist beispielsweise bei der Übergabe an externe Schnittstellen erforderlich. Prinzipiell kann natürlich auch auf andere Umstände gewartet werden. Dazu muss „ellib.FileExists“ gegen eine entsprechende Bedingung getauscht werden. Wenn das Löschen der Datei länger dauert als „DialogDelay“ angegeben, wird eine Hinweismeldung angezeigt. Ist die Zeitspanne größer als „Timeout“, so wird der ganze Vorgang abgebrochen. Beide Zeitangaben erfolgen in Millisekunden. Der Text, der im Wartefenster angezeigt wird, kann über „Title“ vorgegeben werden. Bricht der Benutzer den Wartevorgang ab, so wird „-2“ zurückgegeben; ist der Timeout erreicht „-1“. Bei erfolgreicher Löschung der Datei wird ein positiver Wert zurückgegeben, der die verstrichene Zeit angibt.
In diesem Beispiel wird der Webbrowser gar nicht zum Anzeigen eines
HTML-Dokuments verwendet. Es wird sich in erster Linie die Möglichkeit
genutzt, einen nicht-modalen Dialog anzuzeigen.
VBScript
option explicit
function WaitForFileDelete(Filename, Title, DialogDelay, Timeout)
dim Counter, WaitStr, Seconds, wb, Aborted
counter = 0
Seconds = 0
Aborted = False
set wb = Nothing
WaitStr = ""
do while ellib.FileExists(Filename) and Counter < Timeout
if Counter >= DialogDelay then
if TypeName(wb) = "Nothing" then
set wb = Client.CreateDialog("WebBrowser")
wb.Title = Title
wb.SubTitle = "einen Moment bitte ..." & WaitStr
wb.Height = 85
wb.Show
else
if not wb.FormVisible then
Aborted = True
Exit Do
end if
If Seconds mod 10 = 0 then
WaitStr = WaitStr & "."
wb.SubTitle = "einen Moment bitte ..." & WaitStr
end if
Seconds = Seconds + 1
end if
end if
counter = counter + 100
ellib.Sleep(100) ' 10tel Sekunde Warten
ellib.ProcessMessages ' Eulanda Zeit geben Windows-Botschaften zu verarbeiten
Loop
set wb = Nothing
if Aborted then
WaitForFileDelete = -2
elseIf not ellib.FileExists(Filename) then
WaitForFileDelete = Counter
else
WaitForFileDelete = -1
end if
end function
' TESTEN der Funktion
dim Filename, Code, msg
' Dateinamen für eine Testdatei auf dem Desktop erzeugen
Filename = Client.Properties("Folder.Desktop") & "\FileDeleteTest.txt"
' Erzeugen der Datei
ellib.SaveString "EULANDA Beispieldatei zur Demonstration der API-Funktion WaitForFileDelete", Filename
' Eigentlicher Aufruf der Wartefunktion
Code = WaitForFileDelete(Filename, "Warten auf Löschung der Datei Übergabe", 500, 5000)
' Auswertung des Rückgabewertes
select case Code
case 0 Msg = "Die Datei ist nicht vorhanden"
case -1 Msg="Der Timeout ist abgelaufen"
case -2 Msg="Abbruch durch Benutzer"
case Else
Msg = "Die Datei wurde ca. nach " & CSTr(Code/1000) & " Sekunden gelöscht"
end Select
MsgBox Msg