bitmapproviderimpl.~pas

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

~PAS
65
字号
unit BitmapProviderImpl;

interface

uses
  BitmapProviderIntf, InvokeRegistry, Classes, EncdDecd;

type
  TBitmapProvider = class(TInvokableClass, IBitmapProvider)
  private
    function GetBitmapFile(const sBtName: String) : String;
    function MakeBitmpIntoString(const sFileName: String) : String;
  public
    function GetBitmap(const sBtName : String) : String; stdcall;
  end;

implementation

{ TBitmapProvider }

function TBitmapProvider.GetBitmap(const sBtName: String): String;
var
  sFileName : String;
begin
  sFileName := GetBitmapFile(sBtName);
  Result := MakeBitmpIntoString(sFileName);
end;

function TBitmapProvider.GetBitmapFile(const sBtName: String): String;
begin
  //Make it simple and fast, this is just a demo
  Result := 'GordonLi1.JPG';
  if (sBtName = 'Gordon2') then
    Result := 'GordonLi2.JPG';
end;

function TBitmapProvider.MakeBitmpIntoString(
  const sFileName: String): String;
var
  ass : TStringStream;
  ams : TMemoryStream;
  asl : TStringList;
begin
  ams := TMemoryStream.Create;
  ass := TStringStream.Create('');
  asl := TStringList.Create;
  try
    ams.LoadFromFile(sFileName);
    ams.SaveToStream(ass);
    Result := ass.DataString;
    ams.SaveToFile('gg');
    asl.Add(ass.DataString);
    asl.SaveToFile('hh');
  finally
    ams.Free;
    ass.Free;
    asl.Free;
  end;
end;

initialization
  InvRegistry.RegisterInvokableClass(TBitmapProvider);

end.
 

⌨️ 快捷键说明

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