unit htmlwithcssfrm; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs, IPHtml, Ipfilebroker, IpMsg; type { TMyIpHtmlDataProvider } TMyIpHtmlDataProvider = class(TIpHtmlDataProvider) protected function DoGetStream(const URL: string): TStream; override; public end; { TForm1 } TForm1 = class(TForm) function DataProvider1CanHandle(Sender: TObject; const URL: string ): Boolean; procedure DataProvider1CheckURL(Sender: TObject; const URL: string; var Available: Boolean; var ContentType: string); procedure DataProvider1GetHtml(Sender: TObject; const URL: string; const PostData: TIpFormDataEntity; var Stream: TStream); procedure DataProvider1GetImage(Sender: TIpHtmlNode; const URL: string; var Picture: TPicture); procedure DataProvider1Leave(Sender: TIpHtml); procedure DataProvider1ReportReference(Sender: TObject; const URL: string); procedure FormCreate(Sender: TObject); private procedure ShowHTML(Src: string); public IpHtmlPanel1: TIpHtmlPanel; DataProvider1: TMyIpHtmlDataProvider; end; var Form1: TForm1; implementation {$R *.lfm} { TMyIpHtmlDataProvider } function TMyIpHtmlDataProvider.DoGetStream(const URL: string): TStream; var ms: TMemoryStream; begin Result:=nil; debugln(['TMyIpHtmlDataProvider.DoGetStream ',URL]); if URL='fpdoc.css' then begin debugln(['TMyIpHtmlDataProvider.DoGetStream ',FileExists(URL)]); ms:=TMemoryStream.Create; try ms.LoadFromFile(URL); ms.Position:=0; except ms.Free; end; Result:=ms; end; end; { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin DataProvider1:=TMyIpHtmlDataProvider.Create(Self); with DataProvider1 do begin Name:='DataProvider1'; OnCanHandle:=@DataProvider1CanHandle; OnGetHtml:=@DataProvider1GetHtml; OnGetImage:=@DataProvider1GetImage; OnLeave:=@DataProvider1Leave; OnCheckURL:=@DataProvider1CheckURL; OnReportReference:=@DataProvider1ReportReference; end; IpHtmlPanel1:=TIpHtmlPanel.Create(Self); with IpHtmlPanel1 do begin Name:='IpHtmlPanel1'; Parent:=Self; Align:=alClient; DefaultFontSize:=10; DataProvider:=DataProvider1; end; ShowHTML( '' +'
' +'' +'' +'' +'Name of the component.
' +'Source position: classesh.inc line 1678
' +' published'
+' property '
+'TComponent'
+'.Name: '
+'TComponentName'
+' | '
+'
Name is the name of the component. This name should be a valid identifier,' +' i.e. must start with a letter or underscore, and can contain only letters, numbers and' +' the underscore character. When attempting to set the name of a component, the name' +' will be checked for validity. Furthermore, when a component is owned by another component,' +' the name must be either empty or must be unique among the child component names.
' +'By "letters", 7-bit letters are meant.
' +'Attempting to set the name to an invalid value will result in an exception being raised.
' +'' +' |
| '
+'Called when a name change must be validated | '
+'
' +' |
| '
+'Owner of this component. | '
+'