WebGadget strg+c und strg+v hinzufügen
Verfasst: 15.12.2015 23:56
nun habe ich ja soweit meine 2 Fenster am laufen. Dachte ich mir doch, STRG+C und STRG+V sind schnell zum WebGadget hinzugefügt aber dem ist natürlich mal wieder nicht so 
Ich suche und lese seit Stunden und bekomme das einfach nicht gebacken.
Reicht das nicht aus um STRG+C und STRG+V zu aktivieren?
Das Beispiel unter diesem Link:
http://www.purebasic.fr/english/viewtop ... 12&t=48539
geht leider nicht?. Ich habe das Webgadget in einer Prozedur die erst per Button (siehe Code unten) das Fenster öffnet.
Trage ich nun alle Werte soweit ein (siehe Link oben) und schreibe in die Event Schleife folgendes ein:
bekomme ich den Fehler zu WebObject:
The following variable doesn't have a 'Structure': Webobject
ja, weil das Webobjekt sich in der Prozedur befindet in Fenster 2 - #MainForm
??? Fragen über Fragen
Hab ich hinbekommen nun.
Habe den Code erweitert und die Änderungen übernommen. Nun läuft es wie ich es möchte.

Ich suche und lese seit Stunden und bekomme das einfach nicht gebacken.
Code: Alles auswählen
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_C, #WebGadget)
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_V, #WebGadget)
Das Beispiel unter diesem Link:
http://www.purebasic.fr/english/viewtop ... 12&t=48539
geht leider nicht?. Ich habe das Webgadget in einer Prozedur die erst per Button (siehe Code unten) das Fenster öffnet.
Trage ich nun alle Werte soweit ein (siehe Link oben) und schreibe in die Event Schleife folgendes ein:
Code: Alles auswählen
Case Asc("c")
Debug "copy"
WebObject\ExecWB(#OLECMDID_COPY,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
The following variable doesn't have a 'Structure': Webobject
ja, weil das Webobjekt sich in der Prozedur befindet in Fenster 2 - #MainForm
??? Fragen über Fragen

Hab ich hinbekommen nun.
Edit 2:Und im nachhinein möchte ich oben nun die aktuelle URL anzeigen lassen.
Ein StringGadget erstellen und die aktuelle URL eintragen lassen, Wie kann ich das angehen?
Habe den Code erweitert und die Änderungen übernommen. Nun läuft es wie ich es möchte.
Code: Alles auswählen
;
; Windows 7 ( win8 und win 10 ? )
; PureBasic v 5.3
;
; WINDOWS ONLY
;
; öffnet Rahmenlose Fenster. Fenster 1 mit EditorGadget
; Fenster 2 WebGadget
;
; beide Fenster können nun unabhängig voneinander bewegt
; werden. kopieren von Text im WebGadget und einfügen
; im EditorGadget nun möglich
;
; STRG+C und STRG+V hinzugefügt
; aktuelle URL wird beim Browsen angezeigt
;
; Formatierung des EditorGadget beim einfügen mit STRG+V bleibt nun
; erhalten. Danke an Derren (http://www.purebasic.fr/german)
;
; Ich bin mir nicht 100% sicher ob alles wirklich Bug frei
; läuft. Danke für Verbesserungen. Bis jetzt war kein Absturz
; zu verzeichnen.
;
; Das WebGadget unterstützt HTML 5
;
; Line: 346 --> WebGadget UPDATE auf IE 11
; RegCreateKeyValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", GetFilePart(ProgramFilename()), "11001", #REG_DWORD, ".")
;
Global WebObject.IWebBrowser2
;{ Keyboard Shortcut Enumerations
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
;}
Enumeration
;Main Window
#Window_0
;PopUp Window aus Prozedur
#MainForm
; Main Gadgets
#Btn_Exit
#Image_Exit_Normal
#Image_Exit_Red
#Editor_Gadget
#MausArea
#Font_MausArea
#Btn_Save
#Font_Btn_Save
#Font_Editor_Gadget
#Btn_OpenBrowserGadget
;WebGadget
#WebGadget
#Btn_CloseWebGadget
#Font_Btn_CloseWebGadget
#Btn_Reload
#Font_Btn_Reload
#Btn_Nav_Back
#Font_Btn_Nav_Back
#Btn_Nav_Frwd
#Font_Btn_Nav_Frwd
#Show_Current_Url
#Font_Current_Url
#Btn_Start_Browsing
#Font_Start_Browsing
#Separater
EndEnumeration
;Included Images
DataSection
Image_Exit_Normal:
; exit_normal.png
;{ Size = 328 bytes
Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$22000000,$17000000,$00000208,$3A959601,$0000001D,$59487009,$0E000073,$0E0000C3
Data.l $6FC701C3,$000064A8,$4449FA00,$9C785441,$FFFFF963,$6012033F,$19B75081,$F9915418,$647970AA,$74582CF5,$06865162,$1DF61450
Data.l $C0722860,$812C8721,$AC164CCF,$071228A2,$BD9F12FA,$9CEA8864,$50E12E8F,$7E589554,$519B0A3A,$E13BF3AA,$0763C6DE,$76129F1E
Data.l $2CF41517,$ED344F2B,$4D8AAF9C,$781EA70A,$07A09040,$CF4B200F,$5D1B8740,$2F9624F4,$5A69DF9B,$33A18CBE,$610C4B0A,$00D403D7
Data.l $3BF3924C,$62CAB0A3,$BCACB3D7,$EEA7BE6D,$4A8CA46D,$11240F58,$5380D560,$A8307E0F,$DE9190F5,$0E86B1C8,$6B708C76,$76F96580
Data.l $17CF2A89,$E2190B6D,$11D5A3E7,$C1C6B454,$1B7B75D7,$D7310ED0,$20EC122A,$D9601ACD,$7E3C5BBD,$46507CFE,$912B7A04,$60910F14
Data.l $C3A7300D,$A287130B,$40DAC4F9,$809435AA,$000D65E1,$754D2247,$528F5DE3,$00000000,$444E4549,$826042AE
Image_Exit_Normal_End:
;}
Image_Exit_Red:
; exit_red.png
;{ Size = 326 bytes
Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$22000000,$17000000,$00000208,$3A959601,$0000001D,$59487009,$0E000073,$0E0000C3
Data.l $6FC701C3,$000064A8,$4449F800,$9C785441,$AEC33963,$580480CE,$03371420,$FE6457C3,$B23CB857,$3A2C167A,$034328B1,$92550A28
Data.l $C5CCEE19,$812C8721,$AC164CCF,$221228A2,$28706F1B,$D1D13C33,$E3789740,$C57C691F,$A33609E3,$39D59FCE,$781D844F,$5DD84A7C
Data.l $7323D054,$1D7BC6E5,$A4D8AF8D,$0781EA70,$F07A0904,$0CF4B200,$45D1B874,$CA95F18F,$B43B3AB3,$96AE187B,$C594C79C,$01A807AE
Data.l $EACF2498,$8F6093B4,$67E595CC,$23710FFB,$7AC25465,$AB008920,$F07A9C06,$87AD4183,$8E46F48C,$63B07435,$2C035B84,$476FC5CB
Data.l $2E5D54BE,$D67750CF,$ACAD157F,$50BED379,$8ED000FC,$481D2F87,$6B3483B0,$F8B76580,$1CB3BADD,$F4088CA0,$1E293196,$601AC122
Data.l $70D7874E,$DE35FC6F,$9073AF10,$6EC18126,$B735000D,$24470847,$00009783,$45490000,$42AE444E
Data.b $60,$82
Image_Exit_Red_End:
;}
EndDataSection
;Image Plugins
UsePNGImageDecoder()
Global Url.s="http://store.steampowered.com"
;{
Procedure RegConvertRegKeyToTopKeyAndKeyName(Key.s)
Shared topKey,KeyName.s
temp.s=StringField(Key,1,"\")
temp=UCase(temp)
Select temp
Case "HKEY_CLASSES_ROOT"
topKey=#HKEY_CLASSES_ROOT
Case "HKEY_CURRENT_USER"
topKey=#HKEY_CURRENT_USER
Case "HKEY_LOCAL_MACHINE"
topKey=#HKEY_LOCAL_MACHINE
Case "HKEY_USERS"
topKey=#HKEY_USERS
Case "HKEY_CURRENT_CONFIG"
topKey=#HKEY_CURRENT_CONFIG
EndSelect
PositionSlash=FindString(Key,"\",1)
KeyName.s=Right(Key,(Len(Key)-PositionSlash))
EndProcedure
ProcedureDLL RegSetValue(Key.s, ValueName.s, Value.s, Type, ComputerName.s) ; Sets a Value
;Type can be #REG_SZ / #REG_DWORD / #REG_BINARY / #REG_EXPAND_SZ
;For REG_BINARY type use Hexa value as String
;Returns 1 if successful or 0 if it fails
Shared RegWow64.l,RegEx,topKey,KeyName.s
RegConvertRegKeyToTopKeyAndKeyName(Key)
If ComputerName = "."
If RegEx
GetHandle = RegOpenKeyEx_(topKey,KeyName,0,#KEY_ALL_ACCESS|RegWow64,@hKey)
Else
GetHandle = RegOpenKey_(topKey,KeyName,@hKey)
EndIf
Else
lReturnCode = RegConnectRegistry_(ComputerName,topKey,@lhRemoteRegistry)
If RegEx
GetHandle = RegOpenKeyEx_(lhRemoteRegistry,KeyName,0,#KEY_ALL_ACCESS|RegWow64,@hKey)
Else
GetHandle = RegOpenKey_(lhRemoteRegistry,KeyName,@hKey)
EndIf
EndIf
If GetHandle = #ERROR_SUCCESS
lpcbData = 255
lpData.s = Space(255)
Select Type
Case #REG_EXPAND_SZ
GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_EXPAND_SZ, @Value, Len(Value) + 1)
Case #REG_SZ
GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_SZ, @Value, Len(Value) + 1)
Case #REG_DWORD
lValue = Val(Value)
GetHandle = RegSetValueEx_(hKey, ValueName, 0, #REG_DWORD, @lValue, 4)
Case #REG_BINARY
LenBuffer=Len(Value)/2
*RegBuffer=AllocateMemory(LenBuffer)
For n=0 To LenBuffer-1
OctetHexa.s=Mid(Value,(n*2)+1,2)
Octet=Val("$"+OctetHexa)
PokeB(*RegBuffer+n,Octet)
Next
GetHandle= RegSetValueEx_(hKey,ValueName,0,#REG_BINARY,*RegBuffer,LenBuffer)
FreeMemory(*RegBuffer)
EndSelect
RegCloseKey_(hKey)
ergebnis = 1
ProcedureReturn ergebnis
Else
RegCloseKey_(hKey)
ergebnis = 0
ProcedureReturn ergebnis
EndIf
EndProcedure
ProcedureDLL RegCreateKey(Key.s, ComputerName.s)
;It create subkey if KeyPath don't exist
;Returns 1 if successful or 0 if it fails
Shared RegWow64.l,RegEx,topKey,KeyName.s
RegConvertRegKeyToTopKeyAndKeyName(Key)
lpSecurityAttributes.SECURITY_ATTRIBUTEs
If ComputerName = "."
If RegEx
GetHandle = RegCreateKeyEx_(topKey,KeyName,0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS|RegWow64,@lpSecurityAttributes,@hNewKey,@GetHandle)
Else
GetHandle = RegCreateKey_(topKey,KeyName,@hNewKey)
EndIf
Else
lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry)
If RegEx
GetHandle = RegCreateKeyEx_(lhRemoteRegistry,KeyName,0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS|RegWow64,@lpSecurityAttributes,@hNewKey,@GetHandle)
Else
GetHandle = RegCreateKey_(lhRemoteRegistry,KeyName,@hNewKey)
EndIf
EndIf
If GetHandle = #ERROR_SUCCESS
GetHandle = RegCloseKey_(hNewKey)
CreateKey = #True
Else
CreateKey = #False
EndIf
ProcedureReturn CreateKey
EndProcedure
ProcedureDLL RegCreateKeyValue(Key.s,ValueName.s,Value.s,Type,ComputerName.s) ; Creates a Key and a Value in a Single Command
;Type can be #REG_SZ or #REG_DWORD
;Returns 1 if successful or 0 if it fails
RegCreateKey(Key,ComputerName)
ProcedureReturn RegSetValue(Key,ValueName,Value,Type,ComputerName)
EndProcedure
;- Read current URL
Procedure NavigationCallback(Gadget, NewUrl.s)
If NewUrl <> Url
SetGadgetText(#Show_Current_Url, NewUrl)
Url = NewUrl
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure MainFormShow()
OpenWindow(#MainForm, 0, 0, 1024, 768,"WebGadget HTML5 compatible",#PB_Window_ScreenCentered|#PB_Window_BorderLess)
SetWindowColor(#MainForm, RGB(48, 103, 140))
StringGadget(#Show_Current_Url, 130, 5, 500, 20, Url, #PB_String_BorderLess)
SetGadgetColor(#Show_Current_Url, #PB_Gadget_FrontColor, RGB(243, 225, 208));TEXT FARBE
SetGadgetColor(#Show_Current_Url, #PB_Gadget_BackColor, RGB(31, 77, 106)) ;TEXT Hintergrund FARBE
SetGadgetFont(#Show_Current_Url, LoadFont(#Font_Current_Url, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
WebGadget(#WebGadget, 0, 30, 1024, 768, url)
;- Keyboard Shortcuts hinzufügen
WebObject.IWebBrowser2 = GetWindowLongPtr_(GadgetID(#WebGadget),#GWLP_USERDATA)
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_X,Asc("x"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_C,Asc("c"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_V,Asc("v"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_A,Asc("a"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_Z,Asc("z"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_Y,Asc("y"))
AddKeyboardShortcut(#MainForm,#PB_Shortcut_Control|#PB_Shortcut_Shift|#PB_Shortcut_Z,Asc("y"))
AddKeyboardShortcut(#MainForm, #PB_Shortcut_Return,Asc("Return"))
SetGadgetAttribute(#WebGadget, #PB_Web_NavigationCallback, @NavigationCallback())
;- Btn Back
TextGadget(#Btn_Nav_Back, 0, 4, 30, 20, "<",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_Nav_Back, LoadFont(#Font_Btn_Nav_Back, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_Nav_Back, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_Nav_Back, #PB_Gadget_FrontColor, RGB(0, 0, 0)) ;TEXT FARBE
;- Separator
TextGadget(#Separater, 31, 8, 1, 14, "")
SetGadgetColor(#Separater, #PB_Gadget_BackColor, RGB(31, 77, 106)) ;TEXT Hintergrund FARBE
;- Btn Forward
TextGadget(#Btn_Nav_Frwd, 32, 4, 30, 20, ">",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_Nav_Frwd, LoadFont(#Font_Btn_Nav_Frwd, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_Nav_Frwd, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_Nav_Frwd, #PB_Gadget_FrontColor, RGB(0, 0, 0)) ;TEXT FARBE
;- Btn Reload
TextGadget(#Btn_Reload, 60, 4, 60, 20, "refresh",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_Reload, LoadFont(#Font_Btn_Reload, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_Reload, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_Reload, #PB_Gadget_FrontColor, RGB(0, 0, 0)) ;TEXT FARBE
;- Btn Start Browsing
TextGadget(#Btn_Start_Browsing, 635, 4, 20, 20, ">>",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_Start_Browsing, LoadFont(#Font_Start_Browsing, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_Start_Browsing, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_Start_Browsing, #PB_Gadget_FrontColor, RGB(0, 0, 0)) ;TEXT FARBE
;- Btn Close WEbGadget Window
TextGadget(#Btn_CloseWebGadget, 948, 4, 60, 20, "close",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_CloseWebGadget, LoadFont(#Font_Btn_CloseWebGadget, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_CloseWebGadget, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_CloseWebGadget, #PB_Gadget_FrontColor, RGB(0, 0, 0)) ;TEXT FARBE
WebObject\put_Silent(#True)
WebObject\put_Left(#Editor_Gadget)
EndProcedure
Procedure Start()
RegCreateKeyValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", GetFilePart(ProgramFilename()), "11001", #REG_DWORD, ".")
MainFormShow()
EndProcedure
;}
; Kontextmenü für Editorgadget
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
Protected result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_CONTEXTMENU
If GadgetID(#Editor_Gadget) = wParam
DisplayPopupMenu(#Editor_Gadget, WindowID(#Window_0))
EndIf
;- Beide Fenster unabhängig voneinander mit Maus verschieben
Case #WM_LBUTTONDOWN
SendMessage_(hWnd, #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
EndSelect
ProcedureReturn result
EndProcedure
OpenWindow(#Window_0, 298, 150, 710, 535, "",#PB_Window_BorderLess);| #PB_Window_ScreenCentered
SetWindowColor(#Window_0, RGB(219, 219, 219))
; EXIT BUTTON NORMAL AND HOVER
Define Exit_Normal = CatchImage(#Image_Exit_Normal, ?Image_Exit_Normal, ?Image_Exit_Normal_End - ?Image_Exit_Normal)
Define Exit_Red = CatchImage(#Image_Exit_Red, ?Image_Exit_Red, ?Image_Exit_Red_End - ?Image_Exit_Red)
br = ImageWidth(#Image_Exit_Normal)
hh = ImageHeight(#Image_Exit_Red)
; POSITION WEHRE TO PLACE ON SCREEN
CanvasGadget(#Btn_Exit, 676, -2, br, hh)
SetGadgetAttribute(#Btn_Exit, #PB_Canvas_Image, ImageID(#Image_Exit_Normal))
; Button WebGadget
ButtonGadget(#Btn_OpenBrowserGadget, 300, 50, 100, 50, "open Browser",#BS_FLAT)
; Button Speichern
TextGadget(#Btn_Save, 300, 440, 100, 50, "Text speichern",#SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER)
SetGadgetFont(#Btn_Save, LoadFont(#Font_Btn_Save, "Lucida", 8, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Btn_Save, #PB_Gadget_BackColor, RGB(178, 183, 184)) ;TEXT Hintergrund FARBE
SetGadgetColor(#Btn_Save, #PB_Gadget_FrontColor, RGB(0, 0, 0));TEXT FARBE
; Editor Gadget
EditorGadget(#Editor_Gadget, 43, 150, 623, 250, #PB_Editor_WordWrap);,#PB_Editor_WordWrap
SetGadgetText(#Editor_Gadget, "kopierten Website Text hier einfügen")
SetGadgetFont(#Editor_Gadget, LoadFont(#Font_Editor_Gadget, "Lucida", 10, #PB_Font_HighQuality)) ; Button Font
SetGadgetColor(#Editor_Gadget, #PB_Gadget_FrontColor, RGB(193, 0, 85));TEXT FARBE
; Entferne Rahmen um EditorGadget (Eingabefeld)
SetWindowTheme_(GadgetID(#Editor_Gadget), @"", @"")
SetWindowLongPtr_(GadgetID(#Editor_Gadget), #GWL_EXSTYLE, 0)
SetWindowPos_(GadgetID(#Editor_Gadget), 0, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE | #SWP_FRAMECHANGED)
; Maus Area
TextGadget(#MausArea, 0, 0, 676, 21, " Haupt Fenster",#SS_CENTERIMAGE) ;x;y;länge;höhe,$340 = Value for Text Set vertically align
SetGadgetColor(#MausArea, #PB_Gadget_FrontColor, RGB(246, 246, 246)) ;TEXT FARBE
SetGadgetColor(#MausArea, #PB_Gadget_BackColor, RGB(48, 103, 140)) ;TEXT Hintergrund FARBE
SetGadgetFont(#MausArea, LoadFont(#Font_MausArea, "Arial", 10, #PB_Font_HighQuality)) ; Button Font
;- KontextMenü für EditorGadget deklarieren
If CreatePopupMenu(#Editor_Gadget)
MenuItem(1, "einfügen")
EndIf
SetWindowCallback(@WinCallback())
Repeat
Event = WaitWindowEvent()
EventGadget = EventGadget()
EventType = EventType()
; Kontextmenü auf Editorgadget freischalten
Select event
Case #PB_Event_Menu
Select EventMenu()
Case 1
SetGadgetText(#Editor_Gadget,GetClipboardText())
EndSelect
EndSelect
;Inhalt aus EditorGadget in Datei speichern
If Event=#PB_Event_Gadget
If EventGadget()= #Btn_Save
; Eingabe auslesen
Text$= GetGadgetText(#Editor_Gadget)
; Speicherdialog aufrufen
File$=SaveFileRequester("Text speichern", "C:\info.txt ", "TXT FILE(*.txt)|*.txt", 0)
; schreibe Datei
If CreateFile(1, File$)
WriteStringN(1,Text$, #PB_Ascii)
CloseFile(1)
EndIf
EndIf
EndIf
;- Button Funktionen
If Event = #PB_Event_Gadget
Select EventGadget()
;- BTN WebGadget
Case #Btn_OpenBrowserGadget
Start()
;- BTN CloseWebGadget
Case #Btn_CloseWebGadget
UpdateWindow_(WindowID(#Window_0))
CloseWindow(#MainForm)
;- Web Navigation - Back - Forward - Reload
Case #Btn_Nav_Back
SetGadgetState(#WebGadget, #PB_Web_Back)
Case #Btn_Nav_Frwd
SetGadgetState(#WebGadget, #PB_Web_Forward)
Case #Btn_Reload
SetGadgetState(#WebGadget, #PB_Web_Refresh)
Case #Btn_Start_Browsing
SetGadgetText(#Webgadget, GetGadgetText(#Show_Current_Url))
;- FUNKTION EXIT BUTTON
Case #Btn_Exit
Select eventtype
Case #PB_EventType_MouseEnter
SetGadgetAttribute(#Btn_Exit, #PB_Canvas_Image, ImageID(#Image_Exit_Red))
Case #PB_EventType_MouseLeave
SetGadgetAttribute(#Btn_Exit, #PB_Canvas_Image, ImageID(#Image_Exit_Normal))
;PROGRAM EXIT, IF CLICK ON EXIT BUTTON
Case #PB_EventType_LeftButtonDown
;CLOSE ALL
End
EndSelect
EndSelect
EndIf
; KeyboardShortcuts
Select Event
;-Begin Workaround für correctes Einfügen durch STRG+V ins EditorGadget
;dickes Danke an Derren
Case #PB_Event_Gadget
If EventGadget()=#Editor_Gadget And EventType()=#PB_EventType_Focus
If GetClipboardImage(#PB_Any)=0
SetClipboardText(GetClipboardText())
EndIf
EndIf
;-End Workaround
Case #PB_Event_Menu
Select EventMenu()
Case 'x'
WebObject\ExecWB(#OLECMDID_CUT,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
Case 'c'
WebObject\ExecWB(#OLECMDID_COPY,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
Case 'v'
SetGadgetText(#Editor_Gadget,GetClipboardText())
Case 'a'
WebObject\ExecWB(#OLECMDID_SELECTALL,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
Case 'z'
WebObject\ExecWB(#OLECMDID_UNDO,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
Case 'y'
WebObject\ExecWB(#OLECMDID_REDO,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
EndSelect
EndSelect
Until IsWindow(#Window_0)=0 And IsWindow(Fenster_ID)=0