top / index / prev / next / target / source

2015-12-21 diary: Delphi バリューオブジェクトにおけるバイナリの利用

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

Delphi バリューオブジェクトにおけるバイナリの利用

Delphiでバリューオブジェクトで作成したバリューオブジェクトに、バイナリの項目を追加します。画像コンポーネントなどは SaveToStream を持っており 内部データをストリームに変換することができます。

uOrderItemVO.pas

unit uOrderItemVO;

interface

uses System.Classes, System.SysUtils;

// 注文アイテムバリューオブジェクト
type
  TOrderItemVO = class
  private
    FItemNo: string;
    FPrice: Integer;
    FAmount: Integer;
    // 注文アイテムの画像イメージ
    FItemImage: TBytes;

  public
    // アイテム番号
    property ItemNo: string read FItemNo write FItemNo;
    // 価格
    property Price: Integer read FPrice write FPrice;
    // 数量
    property Amount: Integer read FAmount write FAmount;
    // 注文アイテムの画像イメージ
    property ItemImage: TBytes read FItemImage write FItemImage;
    procedure SetItemImageFromStream(const Stream: TMemoryStream);
    function GetItemImageAsStream(): TMemoryStream;
  end;

implementation

procedure TOrderItemVO.SetItemImageFromStream(const Stream: TMemoryStream);
begin
  SetLength(FItemImage, Stream.Size);
  Stream.Position := 0;
  Stream.Read(FItemImage[0], Stream.Size);
end;

// 呼び出し元でメモリ開放
function TOrderItemVO.GetItemImageAsStream()
  : TMemoryStream;
begin
  Result := TMemoryStream.Create;
  Result.Write(ItemImage, length(ItemImage));
end;

end.

関連する記事


この日記について