QuickStart
Pascal'da bir sayfa, HTTP üzerinden sunulur
Sayfayı oluşturun, HTML özelliğini okuyun, yanıta yazın. İlk sekme sayfa, ikincisi sunucu, üçüncüsü ise konsol programının tamamıdır.
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 bir TsgcHTMLSiteLayout alır: slSidebarLeft, slSidebarRight, slTopNav, slTopNavSidebarLeft, slIconRail veya slOffcanvas. Varsayılan slTopNavSidebarLeft değeridir; bu nedenle yukarıdaki satır yalnızca geçişi göstermek için oradadır.
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;
Indy unit'leri koşulludur, çünkü özel Indy kitaplığıyla yapılan bir derleme bunları sgcIdContext ve sgcIdCustomHTTPServer olarak, stok Indy ile yapılan bir derleme ise IdContext ve IdCustomHTTPServer olarak görür. Pakette gelen demo tam olarak bu koşulu taşır. Dize yazabilen herhangi bir sunucu işe yarar. Pakette gelen demo, Professional sürüm mevcutsa TsgcWSHTTPServer bileşenini seçer, aksi hâlde TIdHTTPServer bileşenine döner; demoda orada bir koşul olmasının, bu alıntıda ise olmamasının nedeni budur.
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.
Bir konsol uygulaması olduğundan kurulacak form ve VCL yoktur. Bu, mümkün olan en kısa sgcHTML programıdır ve pakette gelen demo gerçekte budur.