全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1107
推到 Plurk!
推到 Facebook!

怎样让ListView显示Image字段内容?

缺席
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-17 18:06:08 IP:218.80.xxx.xxx 未訂閱
代码如下,但不在ListView中显示出来,请教是什么问题? var li: TListItem; li := lvMessageParts.Items.Add; QryAttach.First; while not QryAttach.Eof do begin li.SubItems.Append(QryAttach.FieldByName('Attach').AsString); QryAttach.Next; end; //Attach是保存在数据库中的一个WORD文档,用LOADFROMFILE保存进去的
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-17 21:49:37 IP:211.20.xxx.xxx 未訂閱
sl@cableplus.com.cn 你好
  li := lvMessageParts.Items.Add;
  li.Caption := SomeString;
  Li.ImageIndex  := xx; // 對應到某個SmallImages或LargeImages的第xx個圖示
  Li.StatusIndex := xx; // 對應到某個StatusImages的第xx個圖示
  QryAttach.First;
  while not QryAttach.Eof do
  begin
    li.SubItems.Append(QryAttach.FieldByName('Attach').AsString); // <-------- Word的文件,那不就會有一堆亂碼?
    QryAttach.Next;
  end;      Li.Subitems會有不定個數的欄位喔!我沒試過這樣可不可以?或是你要一筆記錄對應一列ListItem?      QryAttach.First;
  while not QryAttach.Eof do
  begin
    li := lvMessageParts.Items.Add;
    li.Caption := QryAttach.FieldByName('Field').AsString;
    Li.ImageIndex  := xx; // 對應到某個SmallImages或LargeImages的第xx個圖示
    Li.StatusIndex := xx; // 對應到某個StatusImages的第xx個圖示
    li.SubItems.Append(QryAttach.FieldByName('Attach').AsString); // <-------- Word的文件,那不就會有一堆亂碼?
    QryAttach.Next;
  end;    
發表人 - chance36 於 2004/05/17 21:52:44
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-18 09:09:32 IP:218.80.xxx.xxx 未訂閱
我现在的想法是我把已经存入数据库的WORD文档,也可能是RAR文件,也可能是TXT文件,点一下这条记录,然后保存在该记录里WORD或RAR或TXT文件就象OUTLOOK或FOXMAIL的附件形式显示出来,请教是不是用上面的方法能够实现
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-18 15:38:41 IP:218.80.xxx.xxx 未訂閱
有没有大大可以帮帮忙?解决一下这个问题?谢谢
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-18 19:28:14 IP:211.20.xxx.xxx 未訂閱
sl@cableplus.com.cn 你好
1.首先在放個ImageList1,然後加入幾個代表圖示(代表Word文件的圖示、代表Rar文件的圖示.....),並記得其位置(由0開始算)
2.設定lvMessageParts.SmallImages := ImageList1;
3.
  .......
  QryAttach.First;
  while not QryAttach.Eof do
  begin
    li := lvMessageParts.Items.Add;
    li.Caption := QryAttach.FieldByName('Field').AsString;
    If Word 文件格式 Then Begin
      Li.ImageIndex  := 1; // 假設第1個圖示代表Word文件
      Li.StatusIndex := 1; //
    End Else If RAR文件格式 Then Begin
      Li.ImageIndex  := 2; // 假設第2個圖示代表RAR文件
      Li.StatusIndex := 2; //
    End Else If TXT文件格式 Then Begin
      Li.ImageIndex  := 3; // 假設第3個圖示代表TXT文件
      Li.StatusIndex := 3; //
    .......
    End Else Begin
      Li.ImageIndex  := 0; // 第0個圖示無附件資料
      Li.StatusIndex := 0; //
    End;        li.SubItems.Append(QryAttach.FieldByName('Attach').AsString); // <-------- Word的文件,那不就會有一堆亂碼?
    QryAttach.Next;
  end;    
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-19 11:09:46 IP:218.80.xxx.xxx 未訂閱
我点击lvMessageParts里的某一个item,我怎么可以得到它是数据库的哪条记录?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-19 12:25:05 IP:203.204.xxx.xxx 未訂閱
sl@cableplus.com.cn 你好     在建立listView的Item時順便將對的記錄資料的KEY記下來,在選到該Item時,再依KEY找到該記錄。
  QryAttach.First;
  while not QryAttach.Eof do
  begin
    li := lvMessageParts.Items.Add;
    li.Caption := QryAttach.FieldByName('Field').AsString;
    ......
    li.SubItems.Append(QryAttach.FieldByName('Key').AsString); // 記錄關鍵欄位
    QryAttach.Next;
  end;    當選到某個Item時
Var
  Key := String ;
  Li : TListItem;
Begin
  Li := lvMessageParts.ISelected;
  Key := Li.SubItems[1];
  If QryAttach.locate('KeyField',Key,[]) Then  Begin
    //在此處理相關程序
  End;
End;
系統時間:2024-07-05 13:04:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!