⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit9.pas

📁 Delphi网络应用开发的源代码
💻 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 + -