kolmck/Addons/mckDHTML.pas

284 lines
8.2 KiB
ObjectPascal

unit mckDHTML;
interface
uses Classes, KOL, mirror;
type
TDHTMLEditShowContextMenu = procedure(Sender: TObject; xPos: Integer; yPos: Integer) of object;
TDHTMLEditContextMenuAction = procedure(Sender: TObject; itemIndex: Integer) of object;
TDHTMLEDIT = class(TKOLCustomControl)
private
fBrowseMode: boolean;
fActivateDTCs: boolean;
fActivateApplets: boolean;
fActivateActiveXControls: boolean;
fScrollBars: boolean;
fShowDetails: boolean;
fOnDocumentComplete: TOnEvent;
fOnDisplayChanged: TOnEvent;
fOnShowContextMenu: TDHTMLEditShowContextMenu;
fOnContextMenuAction: TDHTMLEditContextMenuAction;
fOnonmousedown: TOnEvent;
fOnonmousemove: TOnEvent;
fOnonmouseup: TOnEvent;
fOnonmouseout: TOnEvent;
fOnonmouseover: TOnEvent;
fOnonclick: TOnEvent;
fOnondblclick: TOnEvent;
fOnonkeydown: TOnEvent;
fOnonkeypress: TOnEvent;
fOnonkeyup: TOnEvent;
fOnonblur: TOnEvent;
fOnonreadystatechange: TOnEvent;
protected
function AdditionalUnits: string; override;
procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override;
procedure AssignEvents( SL: TStringList; const AName: String ); override;
procedure SetBrowseMode(m: boolean);
procedure SetActivateDTCs(m: boolean);
procedure SetActivateApplets(m: boolean);
procedure SetActivateActiveXControls(m: boolean);
procedure SetScrollBars(m: boolean);
procedure SetShowDetails(m: boolean);
procedure SetOnDocumentComplete(e: TOnEvent);
procedure SetOnDisplayChanged(e: TOnEvent);
procedure SetOnShowContextMenu(e: TDHTMLEditShowContextMenu);
procedure SetOnContextMenuAction(e: TDHTMLEditContextMenuAction);
procedure SetOnonmousedown(e: TOnEvent);
procedure SetOnonmousemove(e: TOnEvent);
procedure SetOnonmouseup(e: TOnEvent);
procedure SetOnonmouseout(e: TOnEvent);
procedure SetOnonmouseover(e: TOnEvent);
procedure SetOnonclick(e: TOnEvent);
procedure SetOnondblclick(e: TOnEvent);
procedure SetOnonkeydown(e: TOnEvent);
procedure SetOnonkeypress(e: TOnEvent);
procedure SetOnonkeyup(e: TOnEvent);
procedure SetOnonblur(e: TOnEvent);
procedure SetOnonreadystatechange(e: TOnEvent);
published
property Align;
property BrowseMode: boolean read fBrowseMode write SetBrowseMode;
property ActivateDTCs: boolean read fActivateDTCs write SetActivateDTCs;
property ActivateApplets: boolean read fActivateApplets write SetActivateApplets;
property ActivateActiveXControls: boolean read fActivateActiveXControls write SetActivateActiveXControls;
property ScrollBars: boolean read fScrollBars write SetScrollBars;
property ShowDetails: boolean read fShowDetails write SetShowDetails;
property OnDocumentComplete: TOnEvent read FOnDocumentComplete write SetOnDocumentComplete;
property OnDisplayChanged: TOnEvent read FOnDisplayChanged write SetOnDisplayChanged;
property OnShowContextMenu: TDHTMLEditShowContextMenu read FOnShowContextMenu write SetOnShowContextMenu;
property OnContextMenuAction: TDHTMLEditContextMenuAction read FOnContextMenuAction write SetOnContextMenuAction;
property Ononmousedown: TOnEvent read FOnonmousedown write SetOnonmousedown;
property Ononmousemove: TOnEvent read FOnonmousemove write SetOnonmousemove;
property Ononmouseup: TOnEvent read FOnonmouseup write SetOnonmouseup;
property Ononmouseout: TOnEvent read FOnonmouseout write SetOnonmouseout;
property Ononmouseover: TOnEvent read FOnonmouseover write SetOnonmouseover;
property Ononclick: TOnEvent read FOnonclick write SetOnonclick;
property Onondblclick: TOnEvent read FOnondblclick write SetOnondblclick;
property Ononkeydown: TOnEvent read FOnonkeydown write SetOnonkeydown;
property Ononkeypress: TOnEvent read FOnonkeypress write SetOnonkeypress;
property Ononkeyup: TOnEvent read FOnonkeyup write SetOnonkeyup;
property Ononblur: TOnEvent read FOnonblur write SetOnonblur;
property Ononreadystatechange: TOnEvent read FOnonreadystatechange write SetOnonreadystatechange;
end;
procedure Register;
{$R *.dcr}
implementation
procedure Register;
begin
RegisterComponents('KOLAddons', [TDHTMLEDIT]);
end;
function TDHTMLEDIT.AdditionalUnits;
begin
Result := ', KOLDHTML';
end;
const
AlignValues: array[ TKOLAlign ] of String = ( 'caNone', 'caLeft', 'caTop',
'caRight', 'caBottom', 'caClient' );
procedure TDHTMLEDIT.SetupFirst;
begin
SL.Add( Prefix + AName + ' := NewDHTMLEDIT(Result.Form);' );
if Align <> caNone then begin
SL.Add( Prefix + AName + '.SetAlign(' + AlignValues[Align] + ');' );
end else begin
SL.Add( Prefix + AName + '.SetPosition(' + int2str(Left) + ', ' + int2str(Top) + ');' );
SL.Add( Prefix + AName + '.SetSize(' + int2str(Width) + ', ' + int2str(Height) + ');' );
end;
if fBrowseMode then begin
SL.Add( Prefix + AName + '.BrowseMode := True;' );
end;
if fActivateDTCs then begin
SL.Add( Prefix + AName + '.ActivateDTCs := True;' );
end;
if fActivateApplets then begin
SL.Add( Prefix + AName + '.ActivateApplets := True;' );
end;
if fActivateActiveXControls then begin
SL.Add( Prefix + AName + '.ActivateActiveXControls := True;' );
end;
if not fScrollBars then begin
SL.Add( Prefix + AName + '.ScrollBars := False;' );
end;
if fShowDetails then begin
SL.Add( Prefix + AName + '.ShowDetails := True;' );
end;
AssignEvents(SL, AName);
end;
procedure TDHTMLEDIT.AssignEvents;
begin
inherited;
DoAssignEvents( SL, AName,
[ 'OnDocumentComplete', 'OnDisplayChanged', 'OnShowContextMenu', 'OnContextMenuAction',
'Ononmousedown', 'Ononmousemove', 'Ononmouseup', 'Ononmouseout', 'Ononmouseover',
'Ononclick', 'Onondblclick', 'Ononkeydown', 'Ononkeypress', 'Ononkeyup', 'Ononblur',
'Ononreadystatechange' ],
[ @OnDocumentComplete, @OnDisplayChanged, @OnShowContextMenu, @OnContextMenuAction,
@Ononmousedown, @Ononmousemove, @Ononmouseup, @Ononmouseout, @Ononmouseover,
@Ononclick, @Onondblclick, @Ononkeydown, @Ononkeypress, @Ononkeyup, @Ononblur,
@Ononreadystatechange ]);
end;
procedure TDHTMLEDIT.SetBrowseMode;
begin
fBrowseMode := m;
Change;
end;
procedure TDHTMLEDIT.SetActivateDTCs;
begin
fActivateDTCs := m;
Change;
end;
procedure TDHTMLEDIT.SetActivateApplets;
begin
fActivateApplets := m;
Change;
end;
procedure TDHTMLEDIT.SetActivateActiveXControls;
begin
fActivateActiveXControls := m;
Change;
end;
procedure TDHTMLEDIT.SetScrollBars;
begin
fScrollBars := m;
Change;
end;
procedure TDHTMLEDIT.SetShowDetails;
begin
fShowDetails := m;
Change;
end;
procedure TDHTMLEDIT.SetOnDocumentComplete;
begin
fOnDocumentComplete := e;
Change;
end;
procedure TDHTMLEDIT.SetOnDisplayChanged;
begin
fOnDisplayChanged := e;
Change;
end;
procedure TDHTMLEDIT.SetOnShowContextMenu;
begin
fOnShowContextMenu := e;
Change;
end;
procedure TDHTMLEDIT.SetOnContextMenuAction;
begin
fOnContextMenuAction := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonmousedown;
begin
fOnonmousedown := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonmousemove;
begin
fOnonmousemove := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonmouseup;
begin
fOnonmouseup := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonmouseout;
begin
fOnonmouseout := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonmouseover;
begin
fOnonmouseover := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonclick;
begin
fOnonclick := e;
Change;
end;
procedure TDHTMLEDIT.SetOnondblclick;
begin
fOnondblclick := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonkeydown;
begin
fOnonkeydown := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonkeypress;
begin
fOnonkeypress := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonkeyup;
begin
fOnonkeyup := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonblur;
begin
fOnonblur := e;
Change;
end;
procedure TDHTMLEDIT.SetOnonreadystatechange;
begin
fOnonreadystatechange := e;
Change;
end;
end.