fclientmain.~pas
来自「Delphi开发webservice的一套例子」· ~PAS 代码 · 共 112 行
~PAS
112 行
unit fClientMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls, ExtCtrls, Buttons, Rio, SoapHTTPClient;
type
TForm2 = class(TForm)
Panel1: TPanel;
MediaPlayer1: TMediaPlayer;
bbtnGetWavs: TBitBtn;
bbtnPlayWav: TBitBtn;
HTTPRIO1: THTTPRIO;
lbWavs: TListBox;
procedure bbtnGetWavsClick(Sender: TObject);
procedure bbtnPlayWavClick(Sender: TObject);
private
procedure ParseWavsFiles(const sWavs: String);
function GetWavFileName(const sWavFile: String): String;
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses WavsServiceIntf, rjMime;
{$R *.dfm}
procedure TForm2.ParseWavsFiles(const sWavs : String);
var
sData : String;
iPos : Integer;
begin
sData := sWavs;
while (True) do
begin
iPos := Pos(';', sData);
if (iPos <> 0) then
begin
lbWavs.Items.Add(Copy(sData, 1, iPos - 1));
Delete(sData, 1, iPos);
end
else
begin
if (Length(sData) > 0) then
begin
lbWavs.Items.Add(sData);
Break;
end;
end;
end; // while
end; //
procedure TForm2.bbtnGetWavsClick(Sender: TObject);
var
aIntf : IWavsService;
sWavs : String;
begin
aIntf := HTTPRIO1 as IWavsService;
try
sWavs := aIntf.GetWavsList;
ParseWavsFiles(sWavs);
finally // wrap up
aIntf := nil;
end; // try/finally
end;
function TForm2.GetWavFileName(const sWavFile : String) : String;
var
iPos : Integer;
begin
iPos := 1;
while (sWavFile[iPos] <> ' ') do
Inc(iPos);
Result := Copy(sWavFile, 1, iPos - 1);
end;
procedure TForm2.bbtnPlayWavClick(Sender: TObject);
var
aIntf : IWavsService;
ass : TStringStream;
ams : TMemoryStream;
sWav : String;
begin
aIntf := HTTPRIO1 as IWavsService;
try
sWav := lbWavs.Items[lbWavs.ItemIndex];
sWav := GetWavFileName(sWav);
sWav := aIntf.GetWavFile(sWav);
ams := TMemoryStream.Create;
ass := TStringStream.Create(sWav);
MimeDecodeStream(ass, ams);
ams.SaveToFile(lbWavs.Items[lbWavs.ItemIndex]);
Self.MediaPlayer1.FileName := lbWavs.Items[lbWavs.ItemIndex];
Self.MediaPlayer1.Open;
Self.MediaPlayer1.Play;
finally // wrap up
ass.Free;
ams.Free;
aIntf := nil;
end; // try/finally
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?