線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2481
推到 Plurk!
推到 Facebook!

TListView 如何在已存在的資料列的某一欄位新增值?

答題得分者是:Andy Wu
etree
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-01 08:13:04 IP:202.39.xxx.xxx 訂閱
各位先進:

小弟請教一個問題,ListView中已有存在資料,如何在某一欄中再寫入值呢?

將值從文字輸入方塊傳到ListView中

A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2
譬如選擇一列後,由文字方塊輸入值並傳送到列的D欄位。

我發現選擇ListView某一列後,將滑鼠移至文字方塊後,listview就沒有選擇的狀態了,要如何保持其在選擇的狀態,
不會不因此,我用以下的寫法就沒作用了

i:=ListView.items[i].selected.index
ListView.items[i].subitems[2] := Edit.text
編輯記錄
etree 重新編輯於 2008-08-01 13:56:06, 註解 無‧
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-01 10:20:44 IP:61.66.xxx.xxx 訂閱
這個必須在一開始就把第四個位置先建立預留的空間
也就是要add一個空值
然後用findcaption的函數去找到該TListItem
如:
var A:TListItem;
...
...
.....A:= ListView1.FindCaption(0,預填寫的值';
------
======================
昏睡~
不昏睡~
不由昏睡~
etree
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-01 12:01:15 IP:202.39.xxx.xxx 訂閱
沒辦法指定items? 這樣怎麼知道要將值填在哪個item的subitem?

i := TListView1.Selected.Index
if A<>nil then A.Items[i].SubItems[??] :='值'

這樣好像無法compiler過

===================引 用 ko 文 章===================
這個必須在一開始就把第四個位置先建立預留的空間
也就是要add一個空值
然後用findcaption的函數去找到該TListItem
如:
var A:TListItem;
...
...
.....A:= ListView1.FindCaption(0,預填寫的值';
shunaaron
高階會員


發表:13
回覆:94
積分:106
註冊:2006-10-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-01 12:16:20 IP:59.124.xxx.xxx 訂閱
可利用點選ListView
在Events有OnSelectItem
if ( not Selected ) or ( Item = nil ) then
exit
else begin
ListView.Items.BeginUpdate;
Item.Caption := 'X';
Item.SubItems.Strings[0] := '12' ;
Item.SubItems.Strings[1] := '23' ;
ListView.Items.EndUpdate;
end;

===================引 用 etree 文 章===================
各位先進:

小弟請教一個問題,ListView中已有存在資料,如何在某一欄中再寫入值呢?
如下面的例子,我要在D欄中再寫入新的值。

A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2

謝謝!!

------
程式沒有這麼難
只是還沒打通其中要絕
etree
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-08-01 13:54:57 IP:202.39.xxx.xxx 訂閱
Dear


我是要將值從文字輸入方塊傳到ListView中
A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2
譬如選擇一列後,由文字方塊輸入值並傳送到列的D欄位。

我發現選擇ListView某一列後,將滑鼠移至文字方塊後,listview就沒有選擇的狀態了,要如何保持其在選擇的狀態,
會不會因此,我用以下的寫法就沒作用了

i:=ListView.items[i].selected.index
ListView.items[i].subitems[2] := Edit.text



===================引 用 shunaaron 文 章===================
可利用點選ListView
在Events有OnSelectItem
if ( not Selected ) or ( Item = nil ) then
exit
else begin
ListView.Items.BeginUpdate;
Item.Caption := 'X';
Item.SubItems.Strings[0] := '12' ;
Item.SubItems.Strings[1] := '23' ;
ListView.Items.EndUpdate;
end;

===================引 用 etree 文 章===================
各位先進:

小弟請教一個問題,ListView中已有存在資料,如何在某一欄中再寫入值呢?
如下面的例子,我要在D欄中再寫入新的值。

A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2

謝謝!!
編輯記錄
etree 重新編輯於 2008-08-01 13:56:47, 註解 無‧
shunaaron
高階會員


發表:13
回覆:94
積分:106
註冊:2006-10-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-08-01 14:05:14 IP:59.124.xxx.xxx 訂閱
嗯...感覺上你的問題不是程式上的問題
可以用一個做法
當點到listview那列時(有資料item <> nil)時
用私域或Label記下目前是點到哪一筆(存下A,B,C,D)
在要更新裡面資料時~先判斷是哪一列
如Ko大大教的方式
不要只提出問題~請仔細去思考!!
還有~這叫"修改"或"更新"而非新增!!
===================引 用 etree 文 章===================
Dear


我是要將值從文字輸入方塊傳到ListView中
A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2
譬如選擇一列後,由文字方塊輸入值並傳送到列的D欄位。

我發現選擇ListView某一列後,將滑鼠移至文字方塊後,listview就沒有選擇的狀態了,要如何保持其在選擇的狀態,
會不會因此,我用以下的寫法就沒作用了

i:=ListView.items[i].selected.index
ListView.items[i].subitems[2] := Edit.text



===================引 用 shunaaron 文 章===================
可利用點選ListView
在Events有OnSelectItem
if ( not Selected ) or ( Item = nil ) then
exit
else begin
ListView.Items.BeginUpdate;
Item.Caption := 'X';
Item.SubItems.Strings[0] := '12' ;
Item.SubItems.Strings[1] := '23' ;
ListView.Items.EndUpdate;
end;

===================引 用 etree 文 章===================
各位先進:

小弟請教一個問題,ListView中已有存在資料,如何在某一欄中再寫入值呢?
如下面的例子,我要在D欄中再寫入新的值。

A B C D
------- -------- -------- --------
A1 B1 C1
A2 B2 C2

謝謝!!
------
程式沒有這麼難
只是還沒打通其中要絕
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-08-04 11:00:50 IP:61.66.xxx.xxx 訂閱
sorry~
其實if A<>nil then A.SubItems['CAPTION的值',false,true,false);

if A<>nil then A.SubItems[??]:='預填寫的值';
------
======================
昏睡~
不昏睡~
不由昏睡~
Andy Wu
一般會員


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-08-05 10:30:15 IP:61.219.xxx.xxx 訂閱
1. 將滑鼠移至文字方塊後,listview就沒有選擇的狀態了,要如何保持其在選擇的狀態
==> 請將 ListView 的 HideSelection 屬性設為 False ,即可看到被選取的 Item

2. 譬如選擇一列後,由文字方塊輸入值並傳送到列的D欄位
==> 試試看 ListView1.Selected.SubItems[3] := Edit3.Text ( 0 -> A欄 , 1 -> B欄 , 2 -> C欄 , 3 -> D欄 , 所以是 SubItems[3] )
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-08-05 13:28:16 IP:61.66.xxx.xxx 訂閱
其實A欄是caption
B欄才是0

===================引 用 Andy Wu 文 章===================
1. 將滑鼠移至文字方塊後,listview就沒有選擇的狀態了,要如何保持其在選擇的狀態
==> 請將 ListView 的 HideSelection 屬性設為 False ,即可看到被選取的 Item

2. 譬如選擇一列後,由文字方塊輸入值並傳送到列的D欄位
==> 試試看 ListView1.Selected.SubItems[3] := Edit3.Text ( 0 -> A欄 , 1 -> B欄 , 2 -> C欄 , 3 -> D欄 , 所以是 SubItems[3] )
------
======================
昏睡~
不昏睡~
不由昏睡~
系統時間:2024-06-28 19:16:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!