You've already forked CEF4Delphi
mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2026-05-16 08:38:08 +02:00
030e679729
Encode and decode all utf8 strings in Lazarus.
80 lines
1.8 KiB
ObjectPascal
80 lines
1.8 KiB
ObjectPascal
unit uCEFWindowParent;
|
|
|
|
{$IFDEF FPC}
|
|
{$MODE OBJFPC}{$H+}
|
|
{$ENDIF}
|
|
|
|
{$I cef.inc}
|
|
|
|
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
|
{$MINENUMSIZE 4}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF DELPHI16_UP}
|
|
{$IFDEF MSWINDOWS}WinApi.Windows, WinApi.Messages,{$ENDIF} System.Classes, Vcl.Controls, Vcl.Graphics,
|
|
{$ELSE}
|
|
{$IFDEF MSWINDOWS}Windows,{$ENDIF} Classes, Forms, Controls, Graphics,
|
|
{$IFDEF FPC}
|
|
LCLProc, LCLType, LCLIntf, LResources, {$IFDEF MSWINDOWS}LMessages,{$ENDIF} InterfaceBase,
|
|
{$ELSE}
|
|
Messages,
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$IFDEF DELPHI16_UP}uCEFConstants,{$ENDIF} uCEFWinControl;
|
|
|
|
type
|
|
{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}
|
|
TCEFWindowParent = class(TCEFWinControl)
|
|
protected
|
|
{$IFDEF MSWINDOWS}
|
|
procedure WndProc(var aMessage: TMessage); override;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
{$IFDEF FPC}
|
|
procedure Register;
|
|
{$ENDIF}
|
|
|
|
implementation
|
|
|
|
{$IFDEF MSWINDOWS}
|
|
procedure TCEFWindowParent.WndProc(var aMessage: TMessage);
|
|
var
|
|
TempHandle : THandle;
|
|
begin
|
|
case aMessage.Msg of
|
|
WM_SETFOCUS:
|
|
begin
|
|
TempHandle := ChildWindowHandle;
|
|
if (TempHandle <> 0) then PostMessage(TempHandle, WM_SETFOCUS, aMessage.WParam, 0);
|
|
inherited WndProc(aMessage);
|
|
end;
|
|
|
|
WM_ERASEBKGND:
|
|
if (ChildWindowHandle = 0) then inherited WndProc(aMessage);
|
|
|
|
CM_WANTSPECIALKEY:
|
|
if not(TWMKey(aMessage).CharCode in [VK_LEFT .. VK_DOWN, VK_RETURN, VK_ESCAPE]) then
|
|
aMessage.Result := 1
|
|
else
|
|
inherited WndProc(aMessage);
|
|
|
|
WM_GETDLGCODE : aMessage.Result := DLGC_WANTARROWS or DLGC_WANTCHARS;
|
|
|
|
else inherited WndProc(aMessage);
|
|
end;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{$IFDEF FPC}
|
|
procedure Register;
|
|
begin
|
|
{$I res/tcefwindowparent.lrs}
|
|
RegisterComponents('Chromium', [TCEFWindowParent]);
|
|
end;
|
|
{$ENDIF}
|
|
|
|
end.
|