📄 unit9.pas
字号:
unit Unit9;
interface
uses
SysUtils, Classes, HTTPApp, WebModu, HTTPProd, WebAdapt, WebComp,
CompProd, PagItems, SiteProd, MidItems, WebForm;
type
TMyPageAdapter = class(TWebPageModule)
AdapterPageProducer: TAdapterPageProducer;
PagedAdapter1: TPagedAdapter;
FileName: TAdapterField;
FileSize: TAdapterField;
AdapterForm1: TAdapterForm;
AdapterGrid1: TAdapterGrid;
AdapterCommandGroup1: TAdapterCommandGroup;
procedure WebPageModuleCreate(Sender: TObject);
procedure WebPageModuleDestroy(Sender: TObject);
procedure WebPageModuleActivate(Sender: TObject);
procedure PagedAdapter1GetEOF(Sender: TObject; var Eof: Boolean);
procedure PagedAdapter1GetFirstRecord(Sender: TObject;
var Eof: Boolean);
procedure PagedAdapter1GetNextRecord(Sender: TObject;
var Eof: Boolean);
procedure PagedAdapter1GetRecordCount(Sender: TObject;
var Count: Integer);
procedure PagedAdapter1GetRecordIndex(Sender: TObject;
var Index: Integer);
procedure FileNameGetValue(Sender: TObject; var Value: Variant);
procedure FileSizeGetValue(Sender: TObject; var Value: Variant);
private
{ Private declarations }
public
{ Public declarations }
Fstrings:TStrings;
FIndex:Integer;
Procedure InitializeList(AListDir:string);
end;
function MyPageAdapter: TMyPageAdapter;
implementation
{$R *.dfm} {*.html}
uses WebReq, WebCntxt, WebFact, Variants;
function MyPageAdapter: TMyPageAdapter;
begin
Result := TMyPageAdapter(WebContext.FindModuleClass(TMyPageAdapter));
end;
{ TMyPageAdapter }
procedure TMyPageAdapter.InitializeList(AListDir: string);
var
sr: TSearchRec;
begin
FStrings.Clear;
TStringList(FStrings).Sorted:=False;
if FindFirst(AListDir,faAnyFile,sr) = 0 then
begin
repeat
if sr.Attr <> faDirectory then
FStrings.Add(sr.Name+'='+IntToStr(sr.Size));
until FindNext(sr) <> 0;
end;
TStringList(FStrings).Sorted:=True;
end;
procedure TMyPageAdapter.WebPageModuleCreate(Sender: TObject);
begin
FStrings:=TStringList.Create;
end;
procedure TMyPageAdapter.WebPageModuleDestroy(Sender: TObject);
begin
FStrings.Free;
end;
procedure TMyPageAdapter.WebPageModuleActivate(Sender: TObject);
begin
InitializeList('c:\winnt\*.*');
end;
procedure TMyPageAdapter.PagedAdapter1GetEOF(Sender: TObject;
var Eof: Boolean);
begin
EOF:=not (FIndex<FStrings.Count);
end;
procedure TMyPageAdapter.PagedAdapter1GetFirstRecord(Sender: TObject;
var Eof: Boolean);
begin
FIndex:=0;
EOF:=FStrings.Count = 0;
end;
procedure TMyPageAdapter.PagedAdapter1GetNextRecord(Sender: TObject;
var Eof: Boolean);
begin
Inc(FIndex);
EOF:=not (FIndex < FStrings.Count);
end;
procedure TMyPageAdapter.PagedAdapter1GetRecordCount(Sender: TObject;
var Count: Integer);
begin
Count:=FStrings.Count;
end;
procedure TMyPageAdapter.PagedAdapter1GetRecordIndex(Sender: TObject;
var Index: Integer);
begin
Index:=FIndex;
end;
procedure TMyPageAdapter.FileNameGetValue(Sender: TObject;
var Value: Variant);
begin
Value:=FStrings.Names[FIndex];
end;
procedure TMyPageAdapter.FileSizeGetValue(Sender: TObject;
var Value: Variant);
begin
Value:=FStrings.Values[FStrings.Names[FIndex]];
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(TMyPageAdapter, TWebPageInfo.Create([wpPublished {, wpLoginRequired}], '.html'), crOnDemand, caCache)
);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -