delphi5.0作active page object时想返回一幅图片(50分)

  • 主题发起人 主题发起人 zdyue
  • 开始时间 开始时间
Z

zdyue

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi5.0作active page object时想返回一幅图片,我在接口中定义了一个getimage属性(readonly),这个属性将从一个TJPEGImage对象中
读取图片。问题是:getimage属性应该是那种数据类型?具体咋做?
先谢过!
 
是不是小弟说的不够清楚?
现在我已经把图片存于内存中
但delphi制作asp组件提供的输出
数据类型小弟不明白,
应该用variant类型吧?!
但从tmemorystream到variant该怎么
转换呢?还是本人的思路是错的!
请高手指点!
 
附加功能 将问题提前
 
是用Variant
给你两个函数:(注:需 uses DSIntf)
function StmToVariant(Stm:TStream):OleVariant;
var
Size: Integer;
DataPtr: Pointer;
VarBound: TVarArrayBound;
Pkt: TDataPacket;
begin
Size := Stm.Size - Stm.Position;
if Size > 0 then begin
FreeDataPacket(Pkt);
FillChar(VarBound, SizeOf(VarBound), 0);
VarBound.ElementCount := Size;
Pkt := TDataPacket(SafeArrayCreate(varByte, 1, VarBound));
try
SafeArrayAccessData(Pkt, DataPtr);
try
Stm.Read(DataPtr^, Size);
finally
SafeArrayUnAccessData(Pkt);
end;
except
FreeDataPacket(Pkt);
raise;
end;
end;
DataPacketToVariant(Pkt, Result);
end;
procedure VariantToStm(const V:OleVariant;Stm:TStream);
var
Size: Integer;
DataPtr: Pointer;
Pkt: TDataPacket;
begin
FreeDataPacket(Pkt);
if not VarIsNull(V) then begin
SafeArrayCopy(VarToDataPacket(V), Pkt);
end;

if Assigned(Pkt) then begin
Size := DataPacketSize(Pkt);
SafeArrayAccessData(Pkt, DataPtr);
try
Stm.Write(DataPtr^, Size);
finally
SafeArrayUnAccessData(Pkt);
end;
FreeDataPacket(Pkt);
end;
end;
 
接受答案了.
 
后退
顶部