Skip to content

Commit 00331dd

Browse files
author
lobtao
committed
add Support F12
在调试模式下,按F12打开浏览器控制台
1 parent 073840d commit 00331dd

File tree

7 files changed

+98
-14
lines changed

7 files changed

+98
-14
lines changed

Win32/debug/browse.exe

512 Bytes
Binary file not shown.

Win32/debug/niu_new.exe

9.5 KB
Binary file not shown.

browse/browse.identcache

-4 Bytes
Binary file not shown.

niu_new.identcache

-12 Bytes
Binary file not shown.

server_db/server_db.identcache

-4 Bytes
Binary file not shown.

uframeChrome.dfm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ object frameChrome: TframeChrome
3939
OnProcessMessageReceived = Chromium1ProcessMessageReceived
4040
OnBeforeContextMenu = Chromium1BeforeContextMenu
4141
OnContextMenuCommand = Chromium1ContextMenuCommand
42+
OnPreKeyEvent = Chromium1PreKeyEvent
4243
OnKeyEvent = Chromium1KeyEvent
4344
OnJsdialog = Chromium1Jsdialog
4445
OnBeforePopup = Chromium1BeforePopup
@@ -62,4 +63,9 @@ object frameChrome: TframeChrome
6263
Left = 72
6364
Top = 232
6465
end
66+
object ApplicationEvents1: TApplicationEvents
67+
OnMessage = ApplicationEvents1Message
68+
Left = 72
69+
Top = 272
70+
end
6571
end

uframeChrome.pas

Lines changed: 92 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ interface
1010
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
1111
ExtCtrls, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants,
1212
unConfig, uCEFTypes, Dialogs, StdCtrls, uCEFProcessMessage, uCEFv8Context,
13-
StrUtils, spSkinShellCtrls, spMessages;
13+
StrUtils, spSkinShellCtrls, spMessages, AppEvnts;
1414

1515
type
1616
TframeChrome = class(TFrame)
@@ -20,6 +20,7 @@ TframeChrome = class(TFrame)
2020
DevTools: TCEFWindowParent;
2121
Timer1: TTimer;
2222
OpenDialog1: TOpenDialog;
23+
ApplicationEvents1: TApplicationEvents;
2324
procedure Chromium1AfterCreated(Sender: TObject;
2425
const browser: ICefBrowser);
2526
procedure Chromium1BeforeContextMenu(Sender: TObject;
@@ -55,8 +56,12 @@ TframeChrome = class(TFrame)
5556
mode: TCefFileDialogMode; const title, defaultFilePath: ustring;
5657
const acceptFilters: TStrings; selectedAcceptFilter: Integer;
5758
const callback: ICefFileDialogCallback; out Result: Boolean);
59+
procedure Chromium1PreKeyEvent(Sender: TObject; const browser: ICefBrowser;
60+
const event: PCefKeyEvent; osEvent: PMsg; out isKeyboardShortcut,
61+
Result: Boolean);
5862
procedure Chromium1KeyEvent(Sender: TObject; const browser: ICefBrowser;
5963
const event: PCefKeyEvent; osEvent: PMsg; out Result: Boolean);
64+
procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
6065
private
6166
{ Private declarations }
6267
FCaption: string;
@@ -92,6 +97,8 @@ TframeChrome = class(TFrame)
9297
procedure ShowDevTools(aPoint: TPoint); overload;
9398
procedure ShowDevTools; overload;
9499
procedure HideDevTools;
100+
procedure HandleKeyUp(const aMsg : TMsg; var aHandled : boolean);
101+
procedure HandleKeyDown(const aMsg : TMsg; var aHandled : boolean);
95102
public
96103
{ Public declarations }
97104
FClosing: Boolean; // Set to True in the CloseQuery event.
@@ -109,6 +116,18 @@ implementation
109116
uses
110117
ufrmModal, unChromeMessage, unCmdCli;
111118

119+
procedure TframeChrome.ApplicationEvents1Message(var Msg: tagMSG;
120+
var Handled: Boolean);
121+
begin
122+
if unConfig.FStartup_Max = 0 then
123+
Exit;
124+
125+
case Msg.message of
126+
WM_KEYUP : HandleKeyUp(Msg, Handled);
127+
WM_KEYDOWN : HandleKeyDown(Msg, Handled);
128+
end;
129+
end;
130+
112131
procedure TframeChrome.BrowserCreatedMsg(var aMessage: TMessage);
113132
begin
114133
Chromium1.LoadUrl(Self.FUrl);
@@ -304,20 +323,48 @@ procedure TframeChrome.Chromium1Jsdialog(Sender: TObject;
304323
procedure TframeChrome.Chromium1KeyEvent(Sender: TObject;
305324
const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg;
306325
out Result: Boolean);
326+
var
327+
TempMsg : TMsg;
307328
begin
308-
//
309-
if unConfig.FDebug = 0 then
329+
Result := False;
330+
331+
if unConfig.FStartup_Max = 0 then
310332
Exit;
311333

312-
if (event.kind = KEYEVENT_KEYUP) and (osEvent.wParam = 123) then
313-
begin
314-
if DevTools.Visible then
315-
PostMessage(Handle, YS_BROWSER_APP_HIDEDEVTOOLS, 0, 0)
316-
else
317-
PostMessage(Handle, YS_BROWSER_APP_SHOWDEVTOOLS, 0, 0);
334+
if not(Chromium1.IsSameBrowser(browser)) then exit;
318335

319-
Result := True;
320-
end;
336+
if (event <> nil) and (osEvent <> nil) then
337+
case osEvent.Message of
338+
WM_KEYUP :
339+
begin
340+
TempMsg := osEvent^;
341+
342+
HandleKeyUp(TempMsg, Result);
343+
end;
344+
345+
WM_KEYDOWN :
346+
begin
347+
TempMsg := osEvent^;
348+
349+
HandleKeyDown(TempMsg, Result);
350+
end;
351+
end;
352+
end;
353+
354+
procedure TframeChrome.Chromium1PreKeyEvent(Sender: TObject;
355+
const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg;
356+
out isKeyboardShortcut, Result: Boolean);
357+
begin
358+
Result := False;
359+
360+
if unConfig.FStartup_Max = 0 then
361+
Exit;
362+
363+
if Chromium1.IsSameBrowser(browser) and
364+
(event <> nil) and
365+
(event.kind in [KEYEVENT_KEYDOWN, KEYEVENT_KEYUP]) and
366+
(event.windows_key_code = VK_F12) then
367+
isKeyboardShortcut := True;
321368
end;
322369

323370
procedure TframeChrome.Chromium1ProcessMessageReceived(Sender: TObject;
@@ -363,13 +410,46 @@ procedure TframeChrome.Cont(selectedAcceptFilter: Integer;
363410

364411
end;
365412

413+
procedure TframeChrome.HandleKeyDown(const aMsg: TMsg; var aHandled: boolean);
414+
var
415+
TempMessage : TMessage;
416+
TempKeyMsg : TWMKey;
417+
begin
418+
TempMessage.Msg := aMsg.message;
419+
TempMessage.wParam := aMsg.wParam;
420+
TempMessage.lParam := aMsg.lParam;
421+
TempKeyMsg := TWMKey(TempMessage);
422+
423+
if (TempKeyMsg.CharCode = VK_F12) then aHandled := True;
424+
end;
425+
426+
procedure TframeChrome.HandleKeyUp(const aMsg: TMsg; var aHandled: boolean);
427+
var
428+
TempMessage : TMessage;
429+
TempKeyMsg : TWMKey;
430+
begin
431+
TempMessage.Msg := aMsg.message;
432+
TempMessage.wParam := aMsg.wParam;
433+
TempMessage.lParam := aMsg.lParam;
434+
TempKeyMsg := TWMKey(TempMessage);
435+
436+
if (TempKeyMsg.CharCode = VK_F12) then
437+
begin
438+
aHandled := True;
439+
440+
if DevTools.Visible then
441+
PostMessage(Handle, YS_BROWSER_APP_HIDEDEVTOOLS, 0, 0)
442+
else
443+
PostMessage(Handle, YS_BROWSER_APP_SHOWDEVTOOLS, 0, 0);
444+
end;
445+
end;
446+
366447
procedure TframeChrome.HideDevTools;
367448
begin
368449
Chromium1.CloseDevTools(DevTools);
369450
Splitter1.Visible := false;
370451
DevTools.Visible := false;
371452
DevTools.width := 0;
372-
373453
end;
374454

375455
procedure TframeChrome.HideDevToolsMsg(var aMessage: TMessage);
@@ -411,7 +491,6 @@ procedure TframeChrome.ShowDevTools;
411491
TempPoint.x := low(Integer);
412492
TempPoint.y := low(Integer);
413493
ShowDevTools(TempPoint);
414-
415494
end;
416495

417496
procedure TframeChrome.ShowDevTools(aPoint: TPoint);
@@ -420,7 +499,6 @@ procedure TframeChrome.ShowDevTools(aPoint: TPoint);
420499
DevTools.Visible := True;
421500
DevTools.width := width div 4;
422501
Chromium1.ShowDevTools(aPoint, DevTools);
423-
424502
end;
425503

426504
procedure TframeChrome.ShowDevToolsMsg(var aMessage: TMessage);

0 commit comments

Comments
 (0)