怎样让ListView显示Image字段内容? |
缺席
|
sl@cableplus.com.cn
高階會員 ![]() ![]() ![]() ![]() 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
代码如下,但不在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 發送簡訊給我 |
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 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 ![]() ![]() ![]() ![]() 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
Chance36
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
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 發送簡訊給我 |
|
Chance36
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
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; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |