码迷,mamicode.com
首页 > 其他好文 > 详细

TcxGrid Column动态添加Image

时间:2014-08-20 23:54:05      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   ar   div   

      MyCol := TcxColumn.Create;
            ...

            MyCol.PropertiesClass := TcxImageProperties;
            ImageProps := TcxImageProperties(MyCol.Properties);
            ImageProps.Center := True;
            ImageProps.GraphicClassName := ‘‘;
            ImageProps.OnGetGraphicClass := GetThumbnailGraphicClass;
            ImageProps.Stretch := True;
            ...

Procedure GetThumbnailGraphicClass:

procedure TCORSA.GetThumbnailGraphicClass(AItem: TObject;
  ARecordIndex: Integer; APastingFromClipboard: Boolean;
  var AGraphicClass: TGraphicClass);
begin
  if AnsiSAmeText(FThumbNailExtension, .TIF) then
      AGraphicClass := TGraphicClass(GetClass(TTiffGraphic))
  else
  if AnsiSAmeText(FThumbNailExtension, .JPG) then
      AGraphicClass := TGraphicClass(GetClass(TJPEGImage))
end;

The actual thumbnail data is loaded into the grid via streams:

                MStream := TMemoryStream.Create;
                Stream := TStringStream.Create(‘‘);

                MStream.LoadFromFile(ThumbNail);
                Stream.CopyFrom(MStream, MStream.Size);

                FActiveGrid.DataController.SetValue(RowInfo.RecordIndex,
                                                    ThumbCol,
                                                    Stream.DataString);

 

改进后的:

 

function StreamToVar(Stream: TStream): OleVariant;
var
      P: Pointer;
begin
  Result := VarArrayCreate([0, Stream.size -1],Varbyte);
  P := VarArrayLock(Result);
  Try
    Stream.Position := 0;
    Stream.Read(P^, Stream.size);
  Finally
    VarArrayUnlock(Result);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  IRecIdx  :  Integer;
  stream : TMemoryStream;
begin
  with cxGrid1TableView1.DataController do
  begin
    IRecIdx := AppendRecord;
    stream := TMemoryStream.Create();
    stream.LoadFromFile(H:\pic\随拍\IMAG0002.jpg);
     stream.Position := 0;
    Values[IRecIdx,0] := StreamToVar(stream);
    stream.Free;
    Post;
  end;
end;

 

TcxGrid Column动态添加Image,布布扣,bubuko.com

TcxGrid Column动态添加Image

标签:style   blog   color   os   io   for   ar   div   

原文地址:http://www.cnblogs.com/starluck/p/3925863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!