QuickStart
Une page en Pascal, servie via HTTP
Construis la page, lis la propriété HTML, écris-la dans la réponse. Le premier onglet est la page, le deuxième le serveur, le troisième le programme console complet.
uses
SysUtils, Classes,
sgcHTML_Component_Site;
class function TsgcSiteDemoPages.BuildPage: string;
var
oSite: TsgcHTMLComponent_Site;
begin
oSite := TsgcHTMLComponent_Site.Create(nil);
try
oSite.Title := 'sgcHTML Site Layouts';
oSite.Layout := slSidebarLeft;
oSite.AddMenu('Dashboard', '/');
oSite.AddMenu('Customers', '/?page=customers');
oSite.AddSection('Welcome', '<p>Served from Delphi.</p>');
Result := oSite.HTML;
finally
oSite.Free;
end;
end;
Layout prend un TsgcHTMLSiteLayout : slSidebarLeft, slSidebarRight, slTopNav, slTopNavSidebarLeft, slIconRail ou slOffcanvas. La valeur par défaut est slTopNavSidebarLeft, la ligne ci-dessus n'est donc là que pour montrer le sélecteur.
uses
SysUtils, Classes,
sgcWebSocket_Server,
sgcIdContext, sgcIdCustomHTTPServer;
IdContext, IdCustomHTTPServer;
constructor TsgcSiteDemoServer.Create;
begin
inherited Create;
FPort := 8092;
FHTTP := TsgcWSHTTPServer.Create(nil);
FHTTP.Port := FPort;
FHTTP.OnCommandGet := HandleCommandGet;
end;
procedure TsgcSiteDemoServer.Start;
begin
FHTTP.Active := True;
end;
procedure TsgcSiteDemoServer.SendHTML(AResponseInfo: TIdHTTPResponseInfo;
const aHTML: string);
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentType := 'text/html; charset=utf-8';
AResponseInfo.ContentText := aHTML;
end;
Les unités Indy sont conditionnelles car une version avec la bibliothèque Indy personnalisée les voit sous les noms sgcIdContext et sgcIdCustomHTTPServer, et une version avec Indy standard sous les noms IdContext et IdCustomHTTPServer. La démo livrée contient exactement cette condition. N'importe quel serveur capable d'écrire une chaîne convient. La démo livrée choisit TsgcWSHTTPServer lorsqu'une version Professional est disponible et se rabat sur TIdHTTPServer sinon, c'est pourquoi la démo comporte une condition à cet endroit et pas cet extrait.
program sgcSiteDemoServer;
uses
SysUtils,
sgcSiteDemo_Server in 'sgcSiteDemo_Server.pas',
sgcSiteDemo_Pages in 'sgcSiteDemo_Pages.pas';
var
oServer: TsgcSiteDemoServer;
begin
oServer := TsgcSiteDemoServer.Create;
try
oServer.Start;
WriteLn('sgcHTML Site Layouts Demo - http://localhost:' +
IntToStr(oServer.Port));
WriteLn('Press Enter to stop.');
ReadLn;
oServer.Stop;
finally
oServer.Free;
end;
end.
Une application console, donc pas de fiche ni de VCL à configurer. C'est le plus court programme sgcHTML possible, et c'est ce qu'est réellement la démo livrée.