fclientmain.pas

来自「Delphi开发webservice的一套例子」· PAS 代码 · 共 87 行

PAS
87
字号
unit fClientMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst, ExtCtrls, MPlayer, Buttons, Rio,
  SoapHTTPClient, Types;

type
  TForm1 = class(TForm)
    clbFiles: TCheckListBox;
    bbtnGetFiles: TBitBtn;
    bbtnPlay: TBitBtn;
    MediaPlayer1: TMediaPlayer;
    Panel1: TPanel;
    HTTPRIO1: THTTPRIO;
    procedure bbtnGetFilesClick(Sender: TObject);
    procedure bbtnPlayClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses DynArrayDemoServerIntf;

{$R *.dfm}

procedure TForm1.bbtnGetFilesClick(Sender: TObject);
var
  iFileCounter : Integer;
  iCounter : Integer;
  aIntf : IDynArrayDemoServer;
  aviFiles: TStringDynArray;
begin
  Screen.Cursor := crHourGlass;
  try
    iFileCounter := 0;
    clbFiles.Items.Clear;
    aIntf := Self.HTTPRIO1 as IDynArrayDemoServer;
    aviFiles := aIntf.GetFileNames(iFileCounter);

    clbFiles.Items.BeginUpdate;
    try
      for iCounter := 0 to iFileCounter - 1 do    // Iterate
      begin
        clbFiles.Items.Add(aviFiles[iCounter])
      end;    // for
    finally // wrap up
      clbFiles.Items.EndUpdate;
    end;    // try/finally
  finally // wrap up
    aIntf := nil;
    Screen.Cursor := crDefault;
  end;    // try/finally
end;

procedure TForm1.bbtnPlayClick(Sender: TObject);
var
  sFileName : String;
  iSize: Integer;
  abFile: TByteDynArray;
  ams: TMemoryStream;
  aIntf : IDynArrayDemoServer;
begin
  sFileName := clbFiles.Items[clbFiles.ItemIndex];
  Screen.Cursor := crHourGlass;
  try
    SetLength(abFile, 0);
    aIntf := Self.HTTPRIO1 as IDynArrayDemoServer;
    abFile := aIntf.GetFileByDynArray(sFileName, iSize);

    ams := TMemoryStream.Create;
    try
      ams.SetSize(iSize);
      Move(abFile[0], ams.Memory^, iSize);
      ams.SaveToFile(sFileName);
    finally
      ams.Free;
    end;
    Self.Caption := sFileName + '郎

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?