QuickStart
Strona w Pascalu, udostępniona przez HTTP
Zbuduj stronę, odczytaj właściwość HTML, zapisz ją do odpowiedzi. Pierwsza karta to strona, druga to serwer, trzecia to cały program konsolowy.
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 przyjmuje TsgcHTMLSiteLayout: slSidebarLeft, slSidebarRight, slTopNav, slTopNavSidebarLeft, slIconRail lub slOffcanvas. Wartością domyślną jest slTopNavSidebarLeft, więc powyższa linia służy tylko pokazaniu przełącznika.
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;
Jednostki Indy są warunkowe, ponieważ kompilacja z własną biblioteką Indy widzi je jako sgcIdContext i sgcIdCustomHTTPServer, a kompilacja ze standardowym Indy jako IdContext i IdCustomHTTPServer. Dostarczane demo zawiera dokładnie taki warunek. Wystarczy dowolny serwer, który potrafi zapisać tekst. Dostarczane demo wybiera TsgcWSHTTPServer, gdy dostępna jest kompilacja Professional, a w przeciwnym razie przechodzi na TIdHTTPServer, dlatego demo ma tam warunek, a ten fragment go nie ma.
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.
Aplikacja konsolowa, więc nie ma formularza ani VCL do skonfigurowania. To najkrótszy możliwy program sgcHTML i dokładnie tym jest dostarczane demo.