diff --git a/funcext/tvclib/tslvcl.tsf b/funcext/tvclib/tslvcl.tsf index 7d4fca0..9a22bc7 100644 --- a/funcext/tvclib/tslvcl.tsf +++ b/funcext/tvclib/tslvcl.tsf @@ -254,7 +254,7 @@ type tapplication=class(tcomponent) begin tslprocessmessages(false); RunWorkerThreadLoop(); - _wapi.WaitMessage(); + sleep(1);//_wapi.WaitMessage(); end if FTerminated then break; @@ -6282,7 +6282,7 @@ begin begin tslprocessmessages(false); RunWorkerThreadLoop(); - API.WaitMessage(); + sleep(1);//API.WaitMessage(); end end return -1; @@ -6651,7 +6651,7 @@ begin begin tslprocessmessages(false); RunWorkerThreadLoop(); - WPI.WaitMessage(); + sleep(1);//WPI.WaitMessage(); end //////////////////////////////////////////////// if not handle then break; diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index d459cb6..333d5e5 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -4011,7 +4011,7 @@ type TSynCustomMemo = class(TCustomMemo) if (selt and selt = lowercase(val))or(seltcj and seltcj=v.FMate) then begin - cvs.Font.bkColor := 0xFFE2B0; + cvs.Font.bkColor := selectbkcolor;//0xFFE2B0; cvs.Font.bkmode := OPAQUE; end DrawLongString(cvs,val,vallength,r,rnzf); diff --git a/funcext/tvclib/utslvclcef.tsf b/funcext/tvclib/utslvclcef.tsf index f3ff695..8c2fe51 100644 --- a/funcext/tvclib/utslvclcef.tsf +++ b/funcext/tvclib/utslvclcef.tsf @@ -649,7 +649,7 @@ type cef_contain_base = class(tslcstructureobj) begin return FTSLCallbacks[idx]; end - function setcallpropertybyindex(idx,c); + function setcallpropertybyindex(idx,c);virtual; begin n := idx+"_i"; if not ifobj(c) then @@ -747,7 +747,25 @@ type cef_contain_base = class(tslcstructureobj) return r; end end -type cef_focus_handler_t = class(cef_contain_base) +type cef_handler_base = class(cef_contain_base) + function create(ptr) + begin + inherited ; + end + property client read fclient write fclient; + protected + function setcallpropertybyindex(idx,c);override; + begin + inherited; + if fclient then + begin + echo "\r\n:call length():",length(FTSLCallbacks ); + end + end + private + [weakref]fclient; +end +type cef_focus_handler_t = class(cef_handler_base) private function structdescribe();override; begin @@ -895,7 +913,7 @@ type cef_context_menu_params_t=class(cef_contain_base) end -type cef_context_menu_handler_t=class(cef_contain_base) +type cef_context_menu_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -942,7 +960,7 @@ type cef_context_menu_handler_t=class(cef_contain_base) return 0; end end -type cef_download_handler_t=class(cef_contain_base) +type cef_download_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1245,7 +1263,7 @@ type cef_download_item_t=class(cef_contain_base) return s.str; end end -type cef_display_handler_t=class(cef_contain_base) +type cef_display_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1456,7 +1474,7 @@ type cef_display_handler_t=class(cef_contain_base) end end end -type cef_frame_handler_t=class(cef_contain_base) +type cef_frame_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1524,7 +1542,7 @@ type cef_frame_handler_t=class(cef_contain_base) end end end -type cef_find_handler_t=class(cef_contain_base) +type cef_find_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1568,7 +1586,7 @@ type cef_find_handler_t=class(cef_contain_base) end end end -type cef_jsdialog_handler_t=class(cef_contain_base) +type cef_jsdialog_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1612,7 +1630,7 @@ type cef_jsdialog_handler_t=class(cef_contain_base) end end end -type cef_audio_handler_t=class(cef_contain_base) +type cef_audio_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1750,7 +1768,7 @@ type cef_media_access_callback_t=class(cef_contain_base) return ##f(_getptr_()); end end -type cef_permission_handler_t=class(cef_contain_base) +type cef_permission_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -1862,7 +1880,7 @@ type cef_permission_handler_t=class(cef_contain_base) end end -type cef_drag_handler_t=class(cef_contain_base) +type cef_drag_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -2211,7 +2229,7 @@ type cef_drag_data_t=class(cef_contain_base) end -type cef_command_handler_t=class(cef_contain_base) +type cef_command_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -2252,7 +2270,7 @@ type cef_command_handler_t=class(cef_contain_base) end end end -type cef_keyboard_handler_t=class(cef_contain_base) +type cef_keyboard_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -2349,7 +2367,7 @@ type cef_key_event_t=class(tslcstructureobj) property focus_on_editable_field index "focus_on_editable_field" read _getvalue_ write _setvalue_; end -type cef_life_span_handler_t=class(cef_contain_base) +type cef_life_span_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -2454,12 +2472,9 @@ type cef_life_span_handler_t=class(cef_contain_base) /// //void(CEF_CALLBACK* on_after_created)(struct _cef_life_span_handler_t* self,struct _cef_browser_t* browser); property on_after_created index "on_after_created" read getcallpropertybyindex write setcallpropertybyindex; - helloabc; procedure on_after_created_i(sf:pointer;browser:pointer);stdcall; begin c := getcallback(functionname()); - helloabc := 200; - echo ">>in hello abc "; if c then call(c,self(true), cef_object_get(browser,class(cef_browser_t)) @@ -2662,7 +2677,7 @@ type cef_file_dialog_callback_t=class(cef_contain_base) end end -type cef_load_handler_t=class(cef_contain_base) +type cef_load_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -3006,7 +3021,7 @@ type cef_request_t=class(cef_contain_base) //property get_identifier index "get_identifier" read _getvalue_ write _setvalue_; end -type cef_request_handler_t=class(cef_contain_base) +type cef_request_handler_t=class(cef_handler_base) private function structdescribe();override; begin @@ -3511,13 +3526,25 @@ type cef_client_t=class(cef_contain_base) co := findclass("cef_"+nidx+"_t"); if o is co then begin + p := o.client; + if p<>self(true) then + begin + if p then + begin + invoke(p,idx,1,nil); + end + end + fclienthanders[idx] := o; f := findfunction(idx); _setvalue_(idx,getinstance(f)); - end else + o.client := self(true); + end else //ÒÆ³ý begin + o := fclienthanders[idx]; reindex(fclienthanders,array(idx:nil)); _setvalue_(idx,0); + if o then o.client := nil; end end function gethandlerptr(n,c); @@ -3645,8 +3672,9 @@ type cef_client_t=class(cef_contain_base) return call(c,self(true), cef_object_get(browser,class(cef_browser_t)), cef_object_get(frame,class(cef_frame_t)), - source_process, - message + source_process, + cef_object_get(message,class(cef_process_message_t)) + ); end end @@ -4537,7 +4565,6 @@ type cef_process_message_t=class(cef_contain_base) ("copy","intptr",0), ("get_name","intptr",0), ("get_argument_list","intptr",0), - ("get_shared_memory_region","intptr",0), ("get_shared_memory_region","intptr",0) ); end @@ -5335,6 +5362,44 @@ type cef_browser_host_t=class(cef_contain_base) end implementation +type cef_log_severity_t = class + /// + /// Default logging (currently INFO logging). + /// + //LOGSEVERITY_DEFAULT, 0 + /// + /// Verbose logging. + /// + //LOGSEVERITY_VERBOSE, 1 + /// + /// DEBUG logging. + /// + //LOGSEVERITY_DEBUG = LOGSEVERITY_VERBOSE, 1 + + /// + /// INFO logging. + /// + //LOGSEVERITY_INFO, + + /// + /// WARNING logging. + /// + //LOGSEVERITY_WARNING, + /// + /// ERROR logging. + /// + //LOGSEVERITY_ERROR, + /// + /// FATAL logging. + /// + //LOGSEVERITY_FATAL, + /// + /// Disable logging to file for all messages, and to stderr for messages with + /// severity less than FATAL. + /// + //LOGSEVERITY_DISABLE = 99 +end + function IsBadReadPtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadReadPtr"; function IsBadWritePtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadWritePtr"; function LoadLibraryA(txt:string):POINTER;stdcall;external "Kernel32.dll" name "LoadLibraryA";