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

如何分開加入ListView->Items

尚未結案
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-03 20:02:46 IP:220.141.xxx.xxx 未訂閱
如附圖: 假設今天我已經在A,B,D裡面加入了資料    但是我還需要再new以及後面一個欄位,另外加上新的資料(使用另一個開檔)    請問要如何才能知道要寫入的欄位位置(A,B,D欄位已經有資料)    原本加入new欄位的程式為:
 void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
        String sName,sType,sPath;
        TListItem *xItem;
                if(OpenDialog1->Execute())
                {
                        sPath = ExtractFilePath(OpenDialog1->FileName);
                        sName = ExtractFileName(OpenDialog1->FileName);
                        
                }
              
        xItem = ListView1->Items->Add();
        xItem->Caption = sName;
        xItem->SubItems->Add(sPath);
}
//---------------------------------------------------------------------------
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-05 21:13:17 IP:211.76.xxx.xxx 未訂閱
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if(ListView->Columns->Count == 3)
                ListView->Columns->Add();
        ListView->Column[ListView->Columns->Count-1]->Caption = "設定檔";
        TListItem *xItem;
        xItem = ListView->Items->Item[ListView->Items->Count-1];
        OpenDialog->Execute();
        xItem->SubItems->Add(OpenDialog->FileName);
}
==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-05 23:50:02 IP:218.162.xxx.xxx 未訂閱
引言:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if(ListView->Columns->Count == 3)
                ListView->Columns->Add();
        ListView->Column[ListView->Columns->Count-1]->Caption = "設定檔";
        TListItem *xItem;
        xItem = ListView->Items->Item[ListView->Items->Count-1];
        OpenDialog->Execute();
        xItem->SubItems->Add(OpenDialog->FileName);
}
謝謝 稍微修正一下名稱後,發現這行編譯雖然過了,但實際執行後卻會造成錯誤。 想請問一下他是如何判定,要加在"設定檔"這一個Items裡頭?
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-06 02:26:11 IP:211.76.xxx.xxx 未訂閱
如果方便的話可以把錯誤訊息貼出來嗎? 這個程式片段我的測試是ok的 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=80923 這裡有我寫的測試程式 ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-06 12:26:24 IP:218.162.xxx.xxx 未訂閱
引言: 如果方便的話可以把錯誤訊息貼出來嗎? 這個程式片段我的測試是ok的 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=80923 這裡有我寫的測試程式
我測試過你的程式了,的確是我要的功能謝謝你,不過在我這邊沒有錯誤訊息,直接執行後出現下列記憶體問題,所以我想修正也不知道該如何下手..><
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-06 14:19:21 IP:211.76.xxx.xxx 未訂閱
如果ListView中沒有任何記錄的話按"設定檔"是會發生這個問題的 因為在事件中,我是以"原本就有資料"為前提的, 也就是說,我是抓"原本存在於ListView"中的item出來"新增"一個欄位的 如果原本沒資料的話此一事件一發生,就會有error的問題(因為item不存在) ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-06 14:58:14 IP:218.162.xxx.xxx 未訂閱
引言: 如果ListView中沒有任何記錄的話按"設定檔"是會發生這個問題的 因為在事件中,我是以"原本就有資料"為前提的, 也就是說,我是抓"原本存在於ListView"中的item出來"新增"一個欄位的 如果原本沒資料的話此一事件一發生,就會有error的問題(因為item不存在)
原來如此~這樣的話他只會去抓"最後一筆資料"再寫上 前面的資料若沒有寫上"設定檔欄位",就會變成空白 那是否可以照順序一比一筆遞增上去?
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-06 23:01:02 IP:211.76.xxx.xxx 未訂閱
當然可以丫 ListView->Items->Count-1是指ListView的筆數 只要放一個迴圈就可以一筆一筆的修改資料嚕 ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-07 11:23:40 IP:218.162.xxx.xxx 未訂閱
引言: 當然可以丫 ListView->Items->Count-1是指ListView的筆數 只要放一個迴圈就可以一筆一筆的修改資料嚕
我一開始的寫法是這樣:
 for ( int i = 1 ; i <= ListView->Items->Count-1 ; i  )
可是好像不可行..>< 不好意思最後再請問一下,這部份的問題
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-11-07 16:58:49 IP:211.76.xxx.xxx 未訂閱
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if(ListView->Columns->Count == -1)
                return;
        if(ListView->Columns->Count == 3)
                ListView->Columns->Add();
        ListView->Column[ListView->Columns->Count-1]->Caption = "設定檔";
        TListItem *xItem;
        xItem = ListView->Items->Item[ListView->Items->Count-1];
        if(OpenDialog->Execute())
                xItem->SubItems->Add(OpenDialog->FileName);            for(int i = 0;i < ListView->Columns->Count-1;i  )
        {
                xItem = ListView->Items->Item[i];
                xItem->SubItems->Add(OpenDialog->FileName);
        }
}
==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-11-07 17:51:09 IP:211.76.xxx.xxx 未訂閱
引言:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if(ListView->Columns->Count == -1)
                return;
        if(ListView->Columns->Count == 3)
                ListView->Columns->Add();
        ListView->Column[ListView->Columns->Count-1]->Caption = "設定檔";
        TListItem *xItem;
        xItem = ListView->Items->Item[ListView->Items->Count-1];
        if(OpenDialog->Execute())
                xItem->SubItems->Add(OpenDialog->FileName);    //        for(int i = 0;i < ListView->Columns->Count-1;i  )
//sorry,一時筆誤@@"這裡應該是
        for(int i = 0;i < ListView->Items->Count-1;i  )
        {
                xItem = ListView->Items->Item[i];
                xItem->SubItems->Add(OpenDialog->FileName);
        }
}
==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-11-07 19:32:21 IP:218.162.xxx.xxx 未訂閱
謝謝你! 不過他會吃掉原本最後一個 > 真是謝謝你的幫忙~~
系統時間:2024-04-27 14:40:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!