Hallo,
Ich suche eine Möglichkeit, ein ListIcon über
ein WebGadget auszudrucken, kenne mich aber
in HTML nicht so aus.
Am besten wäre eine Procedure, die die GadgetID()
vom ListIcon entgegen nimmt und daraus eine einfache
HTML-Tabelle mit Spaltenüberschriften und Inhalt generiert.
Hat jemand schon sowas gemacht oder gesehen ?
PS:
Das Drucken des Webgadgets habe ich schon bei
PureArea.net gefunden.
ListIcon + WebGadget
ListIcon + WebGadget
PB 6.10
Re: ListIcon + WebGadget
so in etwa:
Grüße ... Kiffi
Code: Alles auswählen
EnableExplicit
Enumeration
#myWindow
EndEnumeration
Enumeration
#myListIconGadget
#myWebGadget
EndEnumeration
Procedure CountListiconColumn(gadget, maxcolumn, keyword.s)
; Marco2007:
; http://www.purebasic.fr/english/viewtopic.php?p=310714#p310714
Protected ColCounter
If IsGadget(gadget)
AddGadgetColumn(gadget, maxcolumn, keyword, 0)
For ColCounter = 0 To maxcolumn
If GetGadgetItemText(gadget, -1, ColCounter) = keyword
Break
EndIf
Next
RemoveGadgetColumn(gadget, ColCounter)
ProcedureReturn ColCounter
EndIf
EndProcedure
Procedure ListIconGadgetToWebGadget(ListIconGadgetId, WebGadgetId)
Protected CountColumns, CountRows
Protected RowCounter, ColCounter
Protected HTML.s
CountColumns = CountListiconColumn(ListIconGadgetId, 255, "uniquekeyword0815") - 1
CountRows = CountGadgetItems(ListIconGadgetId) - 1
HTML = "<html><body><table border='1'>"
HTML + "<tr>"
For ColCounter = 0 To CountColumns
HTML + "<th>" + GetGadgetItemText(ListIconGadgetId, -1, ColCounter) + "</th>"
Next
HTML + "</tr>"
For RowCounter = 0 To CountRows
HTML + "<tr>"
For ColCounter = 0 To CountColumns
HTML + "<td>" + GetGadgetItemText(ListIconGadgetId, RowCounter, ColCounter) + "</td>"
Next
HTML + "</tr>"
Next
HTML + "</table></body></html>"
SetGadgetItemText(WebGadgetId, #PB_Web_HtmlCode, HTML)
EndProcedure
Define RowCounter, ColCounter
Define Line.s
OpenWindow(#myWindow, #PB_Any, #PB_Any, 800, 615, "")
ListIconGadget(#myListIconGadget, 5, 5, 790, 300, "column1", 60)
; Beispielcolumns erzeugen
For ColCounter = 2 To 10
AddGadgetColumn(#myListIconGadget, ColCounter - 1, "column" + Str(Colcounter), 60)
Next
; Beispielzeilen erzeugen
For RowCounter = 1 To 20
Line = ""
For ColCounter=1 To 10
Line + Str(RowCounter) + "\" + Str(ColCounter)
If ColCounter < 10
Line + #LF$
EndIf
Next
AddGadgetItem(#myListIconGadget, -1, Line)
Next
WebGadget(#myWebGadget, 5, 310, 790, 300, "")
ListIconGadgetToWebGadget(#myListIconGadget, #myWebGadget)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
a²+b²=mc²
Re: ListIcon + WebGadget
Danke,
fast schon perfekt.
Wenn ich EnableExplicit eingeschaltet habe,
kommt bei dieser Zeile eine Fehlermeldung
Wie muß ich denn WebObject.IWebBrowser2 definieren ?
fast schon perfekt.
Wenn ich EnableExplicit eingeschaltet habe,
kommt bei dieser Zeile eine Fehlermeldung
Code: Alles auswählen
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#myWebGadget), #GWL_USERDATA)
Code: Alles auswählen
;EnableExplicit
Enumeration
#myWindow
EndEnumeration
Enumeration
#myListIconGadget
#myWebGadget
EndEnumeration
Enumeration 1
#OLECMDID_OPEN
#OLECMDID_NEW
#OLECMDID_SAVE
#OLECMDID_SAVEAS
#OLECMDID_SAVECOPYAS
#OLECMDID_PRINT
#OLECMDID_PRINTPREVIEW
#OLECMDID_PAGESETUP
#OLECMDID_SPELL
#OLECMDID_PROPERTIES
#OLECMDID_CUT
#OLECMDID_COPY
#OLECMDID_PASTE
#OLECMDID_PASTESPECIAL
#OLECMDID_UNDO
#OLECMDID_REDO
#OLECMDID_SELECTALL
#OLECMDID_CLEARSELECTION
#OLECMDID_ZOOM
#OLECMDID_GETZOOMRANGE
#OLECMDID_UPDATECOMMANDS
#OLECMDID_REFRESH
#OLECMDID_STOP
#OLECMDID_HIDETOOLBARS
#OLECMDID_SETPROGRESSMAX
#OLECMDID_SETPROGRESSPOS
#OLECMDID_SETPROGRESSTEXT
#OLECMDID_SETTITLE
#OLECMDID_SETDOWNLOADSTATE
#OLECMDID_STOPDOWNLOAD
EndEnumeration
Enumeration 0
#OLECMDEXECOPT_DODEFAULT
#OLECMDEXECOPT_PROMPTUSER
#OLECMDEXECOPT_DONTPROMPTUSER
#OLECMDEXECOPT_SHOWHELP
EndEnumeration
Procedure CountListiconColumn(gadget, maxcolumn, keyword.s)
; Marco2007:
; http://www.purebasic.fr/english/viewtopic.php?p=310714#p310714
Protected ColCounter
If IsGadget(gadget)
AddGadgetColumn(gadget, maxcolumn, keyword, 0)
For ColCounter = 0 To maxcolumn
If GetGadgetItemText(gadget, -1, ColCounter) = keyword
Break
EndIf
Next
RemoveGadgetColumn(gadget, ColCounter)
ProcedureReturn ColCounter
EndIf
EndProcedure
Procedure ListIconGadgetToWebGadget(ListIconGadgetId, WebGadgetId)
Protected CountColumns, CountRows
Protected RowCounter, ColCounter
Protected HTML.s
CountColumns = CountListiconColumn(ListIconGadgetId, 255, "uniquekeyword0815") - 1
CountRows = CountGadgetItems(ListIconGadgetId) - 1
HTML = "<html><body><table border='1'>"
HTML + "<tr>"
For ColCounter = 0 To CountColumns
HTML + "<th>" + GetGadgetItemText(ListIconGadgetId, -1, ColCounter) + "</th>"
Next
HTML + "</tr>"
For RowCounter = 0 To CountRows
HTML + "<tr>"
For ColCounter = 0 To CountColumns
HTML + "<td>" + GetGadgetItemText(ListIconGadgetId, RowCounter, ColCounter) + "</td>"
Next
HTML + "</tr>"
Next
HTML + "</table></body></html>"
SetGadgetItemText(WebGadgetId, #PB_Web_HtmlCode, HTML)
EndProcedure
Define RowCounter, ColCounter
Define Line.s
#Button = 2
OpenWindow(#myWindow, #PB_Any, #PB_Any, 800, 615, "")
ButtonGadget(#Button, 10, 10, 60, 20, "Print")
ListIconGadget(#myListIconGadget, 5, 35, 790, 250, "column1", 60)
; Beispielcolumns erzeugen
For ColCounter = 2 To 10
AddGadgetColumn(#myListIconGadget, ColCounter - 1, "column" + Str(Colcounter), 60)
Next
; Beispielzeilen erzeugen
For RowCounter = 1 To 20
Line = ""
For ColCounter=1 To 10
Line + Str(RowCounter) + "\" + Str(ColCounter)
If ColCounter < 10
Line + #LF$
EndIf
Next
AddGadgetItem(#myListIconGadget, -1, Line)
Next
WebGadget(#myWebGadget, 5, 330, 790, 300, "")
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#myWebGadget), #GWL_USERDATA)
ListIconGadgetToWebGadget(#myListIconGadget, #myWebGadget)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget And EventGadget() = #Button
; Send the Print Command to the WebGadget:
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_PROMPTUSER, 0, 0)
; using #OLECMDEXECOPT_DONTPROMPTUSER as second argument will print without
; the printrequester.
EndIf
Until WaitWindowEvent() = #PB_Event_CloseWindow
PB 6.10
Re: ListIcon + WebGadget
H.Brill hat geschrieben:Wie muß ich denn WebObject.IWebBrowser2 definieren ?
Code: Alles auswählen
Define WebObject.IWebBrowser2
a²+b²=mc²
Re: ListIcon + WebGadget
Danke, paßt.
vorläufig letzte Frage zur Perfektion :
Könnte man beim Erstellen des HTML-Gadgets
die Breite der einzelnen Spalten des Listicongadgets
mit berücksichtigen ?
Also, wenn ich unterschiedlich breite Spalten habe,
daß diese auch im Webgadget so dargestellt werden ?
Weiß nicht, ob das Table-Tag sowas hergibt.
vorläufig letzte Frage zur Perfektion :
Könnte man beim Erstellen des HTML-Gadgets
die Breite der einzelnen Spalten des Listicongadgets
mit berücksichtigen ?
Also, wenn ich unterschiedlich breite Spalten habe,
daß diese auch im Webgadget so dargestellt werden ?
Weiß nicht, ob das Table-Tag sowas hergibt.
PB 6.10
Re: ListIcon + WebGadget
Mit
Breite = GetGadgetItemAttribute(#Gadget, Eintrag, #PB_ListIcon_ColumnWidth , Spalte)
kannst du die einzelne Spaltenbreite des ListIconGadgets ermitteln.
Dieser Wert kann dann einfach in den Kopf der Tabellen
ggf. noch etwas vergrößern je nach Schriftart ...
Breite = GetGadgetItemAttribute(#Gadget, Eintrag, #PB_ListIcon_ColumnWidth , Spalte)
kannst du die einzelne Spaltenbreite des ListIconGadgets ermitteln.
Dieser Wert kann dann einfach in den Kopf der Tabellen
Code: Alles auswählen
HTML + "<tr>"
For ColCounter = 0 To CountColumns
Breite = GetGadgetItemAttribute(ListIconGadgetId, -1, #PB_ListIcon_ColumnWidth, ColCounter)
HTML + "<th width="+Str(Breite)+">" + GetGadgetItemText(ListIconGadgetId, -1, ColCounter) + "</th>"
Next
HTML + "</tr>"
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr