TcxGrid Column动态添加Image

      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

时间: 2024-10-08 14:33:21

TcxGrid Column动态添加Image的相关文章

Android开发之动态添加控件

动态添加TextView控件: 一:创建一个Android project项目 activity_main.xml文件: 1.用两个LinearLayout布局分别包裹一对TextView,EditText控件,将orientation设置为水平方向,EditText的hint属性可以实现水印效果,两个EditText用来控制显示(TextView控件数量)的行和列. 2. 用一个LinearLayout布局包裹Button按钮,在EditText控件输入完后,点击button按钮,就会自动生成

Ext如何动态添加一行组件

用的column布局,点击一个按钮能添加一行组件,如文本框,有下拉框等. 如: 效果: 实现方法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69

NHibernate动态添加表

NHibernate动态添加表 设置和动态扩展表差不多,添加了一个模板hbm.xml文件,用于创建动态hbm.xml,HibernateUtil无改动. MappingManger添加了两个方法 1 public static void UpdateClassMapping(DynamicTestModel dynamicModel) 2 { 3 var session = HibernateUtil.Instance.CurrentSession; 4 var fileName = "hbm_

C# DataGridView控件动态添加新行

C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[

Quartz任务调度[Spring+Quartz结合]_实现任务的动态添加、修改和删除

项目框架图 下面开始贴代码了,不过先贴数据库^^ -- Create table Oracle数据库 create table QUARTZ_SCHEDULEJOB ( id VARCHAR2(32), job_name VARCHAR2(32) not null, job_status NVARCHAR2(3) default 0 not null, cron_expression NVARCHAR2(32) not null, concurrent NVARCHAR2(3) default

编辑 Ext 表格(一)——— 动态添加删除行列

一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行  gridStore.add({}); (2) 动态删除表格的行 gridStore.removeAt(gridStore.count() - 1); 二.动态增删列 在 ext 表格中,动态添加列主要通过修改表格绑定的 column 元素, 通过对 column 元素集进行添加或删除,然后重新渲染表格,就能实现表

WPF中TreeView控件数据绑定和后台动态添加数据

数据绑定: TreeView数据绑定需要使用层次结构数据模板(HierarchicalDataTemplate)来显示分层数据.XAML代码如下: <TreeView Name="chapterTree" Grid.Column="0"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=ChildNodes}"&

RecyclerView动态添加、删除及点击事件

上一节讲解了RecyclerView的三种显示方式,本节将主要研究一下RecyclerView的动态添加.删除及其单击和长按事件的处理.我们在上一节代码的基础上进行相关操作. 一.修改适配器类MyAdapter,加入添加和删除这两个方法: public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context context; private List<String>

jquey学习2之jquery动态添加页面片段

第一个方法:append()方法 [1]$(selector).append(content)//向匹配的所有标签中的内容末尾处添加Html代码,会编译成页面显示. 1 <html> 2 <head> 3 <script type="text/javascript" src="/jquery/jquery.js"></script> 4 <script type="text/javascript&quo