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

動態開ListView無法觸發ListViewCompare函數

答題得分者是:gemi0305
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-29 02:08:29 IP:219.81.xxx.xxx 未訂閱
public:                // User declarations
TListView *ListView1;
void __fastcall ListView1Compare(TObject *Sender, TListItem *Item1,
          TListItem *Item2, int Data, int &Compare);
 
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
 ListView1 = new TListView(this);
 ListView1->ViewStyle=vsReport;
 ListView1->OnCompare=ListView1Compare;
 ListView1->Parent = this;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ListView1Compare(TObject *Sender,
      TListItem *Item1, TListItem *Item2, int Data, int &Compare)
{
  Compare = CompareText(Item1->SubItems->Strings[10],Item2->SubItems->Strings[10]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  ListView1->CustomSort(NULL,1);
  ((TCustomListView *)Sender)->AlphaSort();//此Sender會出錯
}
若是不是用動態開ListView時,就可以編譯通過 小弟笨拙,勞駕前輩們指點,感謝您! --==多看.多學.多聽==--
------
--==多看.多學.多聽==--
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-29 08:43:08 IP:210.66.xxx.xxx 未訂閱
在bcb 6.0 update4 測試下沒有這個問題, 其他前輩測試也和我一樣嗎?    HomeSound兄,能否再多給一點資訊, 如error message或更多的程式碼~ 國泰平安
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-29 08:45:27 IP:210.66.xxx.xxx 未訂閱
我發現一個怪怪的地方,想請教一下~ 你的  
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  ListView1->CustomSort(NULL,1);
  ((TCustomListView *)Sender)->AlphaSort();//此Sender會出錯
}     
和前面那個不同,是有兩個form嗎?? 國泰平安
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-30 03:57:48 IP:61.30.xxx.xxx 未訂閱
感謝gemi0305前輩回答 太眼尖了吧! 小弟是截取程式片段Form名子是一樣 BitBtn1Click是去別的程式copy的 所以Form名子不一樣,抱歉 bcb 5.0 UP2 不行耶 [C Error] xxxxx1.cpp(779): E2451 Undefined symbol 'Sender' 這樣說好了 CompareText(Item1->SubItems->Strings[10],Item2->SubItems->Strings[10]); 就是要在ListView1作欄位10的排序,直接觸發 小弟愚昧只會用這種笨方法,Sorry! --==多看.多學.多聽==--
------
--==多看.多學.多聽==--
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-30 10:01:20 IP:210.66.xxx.xxx 未訂閱
我再測試還是可以耶,真不知要怎麼幫你說~
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-30 15:46:10 IP:61.30.xxx.xxx 未訂閱
感謝gemi0305前輩鼎力相助 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23825 這篇早以看過了,還是要感謝您 小弟不是用BitBtn1Click的函數,所以是沒有*Sender的(真白癡) 把它改成: ListView1->AlphaSort(); 就可以了,再次感謝gemi0305大大提醒 Thank. --==多看.多學.多聽==--
------
--==多看.多學.多聽==--
系統時間:2024-05-15 10:55:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!