mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-27 19:01:43 +02:00
ipro design: use a panel
git-svn-id: trunk@31029 -
This commit is contained in:
parent
bae7c25e9b
commit
39474920c0
@ -22,7 +22,7 @@ unit IPIDEHTMLControl;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, math, LCLProc, Graphics, Controls, Dialogs,
|
Classes, SysUtils, math, LCLProc, Graphics, Controls, Dialogs, ExtCtrls,
|
||||||
IpMsg, Ipfilebroker, IpHtml, IDEHelpIntf, LazHelpIntf;
|
IpMsg, Ipfilebroker, IpHtml, IDEHelpIntf, LazHelpIntf;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -41,7 +41,7 @@ type
|
|||||||
|
|
||||||
{ TLazIPHtmlControl }
|
{ TLazIPHtmlControl }
|
||||||
|
|
||||||
TLazIPHtmlControl = class(TIpHtmlPanel,TIDEHTMLControlIntf)
|
TLazIPHtmlControl = class(TCustomPanel,TIDEHTMLControlIntf)
|
||||||
function DataProviderCanHandle(Sender: TObject; const URL: string): Boolean;
|
function DataProviderCanHandle(Sender: TObject; const URL: string): Boolean;
|
||||||
procedure DataProviderCheckURL(Sender: TObject; const URL: string;
|
procedure DataProviderCheckURL(Sender: TObject; const URL: string;
|
||||||
var Available: Boolean; var ContentType: string);
|
var Available: Boolean; var ContentType: string);
|
||||||
@ -53,6 +53,7 @@ type
|
|||||||
procedure DataProviderReportReference(Sender: TObject; const URL: string);
|
procedure DataProviderReportReference(Sender: TObject; const URL: string);
|
||||||
private
|
private
|
||||||
FIDEProvider: TAbstractIDEHTMLProvider;
|
FIDEProvider: TAbstractIDEHTMLProvider;
|
||||||
|
FIPHTMLPanel: TIpHtmlPanel;
|
||||||
FURL: string;
|
FURL: string;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
@ -61,6 +62,7 @@ type
|
|||||||
property IDEProvider: TAbstractIDEHTMLProvider read FIDEProvider write FIDEProvider;
|
property IDEProvider: TAbstractIDEHTMLProvider read FIDEProvider write FIDEProvider;
|
||||||
procedure SetHTMLContent(Stream: TStream; const NewURL: string);
|
procedure SetHTMLContent(Stream: TStream; const NewURL: string);
|
||||||
procedure GetPreferredControlSize(out AWidth, AHeight: integer);
|
procedure GetPreferredControlSize(out AWidth, AHeight: integer);
|
||||||
|
property IPHTMLPanel: TIpHtmlPanel read FIPHTMLPanel;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function IPCreateLazIDEHTMLControl(Owner: TComponent;
|
function IPCreateLazIDEHTMLControl(Owner: TComponent;
|
||||||
@ -179,11 +181,17 @@ end;
|
|||||||
constructor TLazIPHtmlControl.Create(AOwner: TComponent);
|
constructor TLazIPHtmlControl.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
DefaultFontSize := 8;
|
FIPHTMLPanel:=TIpHtmlPanel.Create(Self);
|
||||||
MarginHeight := 0;
|
with FIPHTMLPanel do begin
|
||||||
MarginWidth := 0;
|
Name:='TLazIPHtmlControl_IPHTMLPanel';
|
||||||
DataProvider:=TLazIpHtmlDataProvider.Create(Self);
|
Align:=alClient;
|
||||||
with TLazIpHtmlDataProvider(DataProvider) do begin
|
DefaultFontSize:=8;
|
||||||
|
MarginHeight:=2;
|
||||||
|
MarginWidth:=2;
|
||||||
|
Parent:=Self;
|
||||||
|
end;
|
||||||
|
FIPHTMLPanel.DataProvider:=TLazIpHtmlDataProvider.Create(Self);
|
||||||
|
with TLazIpHtmlDataProvider(FIPHTMLPanel.DataProvider) do begin
|
||||||
FControl:=Self;
|
FControl:=Self;
|
||||||
Name:='TLazIPHtmlControlDataProvider';
|
Name:='TLazIPHtmlControlDataProvider';
|
||||||
OnCanHandle:=@DataProviderCanHandle;
|
OnCanHandle:=@DataProviderCanHandle;
|
||||||
@ -193,6 +201,8 @@ begin
|
|||||||
OnCheckURL:=@DataProviderCheckURL;
|
OnCheckURL:=@DataProviderCheckURL;
|
||||||
OnReportReference:=@DataProviderReportReference;
|
OnReportReference:=@DataProviderReportReference;
|
||||||
end;
|
end;
|
||||||
|
Caption:='';
|
||||||
|
BevelInner:=bvLowered;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TLazIPHtmlControl.GetURL: string;
|
function TLazIPHtmlControl.GetURL: string;
|
||||||
@ -224,7 +234,7 @@ begin
|
|||||||
if not ok then NewHTML.Free;
|
if not ok then NewHTML.Free;
|
||||||
IDEProvider.ReleaseStream(FURL);
|
IDEProvider.ReleaseStream(FURL);
|
||||||
end;
|
end;
|
||||||
SetHtml(NewHTML);
|
FIPHTMLPanel.SetHtml(NewHTML);
|
||||||
except
|
except
|
||||||
on E: Exception do begin
|
on E: Exception do begin
|
||||||
MessageDlg('Unable to open HTML file',
|
MessageDlg('Unable to open HTML file',
|
||||||
@ -241,7 +251,7 @@ var
|
|||||||
begin
|
begin
|
||||||
FURL:=NewURL;
|
FURL:=NewURL;
|
||||||
NewHTML:=TIpHtml.Create; // Beware: Will be freed automatically by TIpHtmlPanel
|
NewHTML:=TIpHtml.Create; // Beware: Will be freed automatically by TIpHtmlPanel
|
||||||
SetHtml(NewHTML);
|
FIPHTMLPanel.SetHtml(NewHTML);
|
||||||
NewHTML.LoadFromStream(Stream);
|
NewHTML.LoadFromStream(Stream);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user