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

PageControl 和 DBGrid

答題得分者是:AndrewK
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-13 14:54:12 IP:210.71.xxx.xxx 訂閱
抱歉,又來問問題了><

這我的程式中有用到 PageControl 這物件,展開了3個 Page ,

但因為我的資料庫有兩個,所以會用到兩個 DBGrid ,以下是程式碼

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
if(DBGrid1->Visible==true)
DBGrid1->Visible=false;
else if(DBGrid1->Visible==false)
DBGrid1->Visible=true;
}
但是這樣只會讓Page1會有出現DBGrid1的資料,Page2沒出現,而Page卻也出現DBGrid1的資料

但是我需要的是在Page1只會出現DBGrid1的資料,而在Page2跟Page3則會出現DBGrid2的資料。

請各位高手、前輩幫忙,謝謝

AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-14 07:20:04 IP:203.67.xxx.xxx 訂閱

[code delphi]
case PageControl1.ActivePageIndex of
1:dbgrid2.Parent := PageControl1.ActivePage;
2:dbgrid2.Parent := PageControl1.ActivePage;
end;
[/code]

建議:
其實你也可以用三個 DBGrid

請教您的職業是什麼呢??
===================引 用 kill42el 文 章===================
抱歉,又來問問題了><

這我的程式中有用到 PageControl 這物件,展開了3個 Page ,

但因為我的資料庫有兩個,所以會用到兩個 DBGrid ,以下是程式碼

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
if(DBGrid1->Visible==true)
DBGrid1->Visible=false;
else if(DBGrid1->Visible==false)
DBGrid1->Visible=true;
}
但是這樣只會讓Page1會有出現DBGrid1的資料,Page2沒出現,而Page卻也出現DBGrid1的資料

但是我需要的是在Page1只會出現DBGrid1的資料,而在Page2跟Page3則會出現DBGrid2的資料。

請各位高手、前輩幫忙,謝謝

------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-14 09:38:04 IP:123.204.xxx.xxx 訂閱
你好!!
其實你說的用三個 DBGrid
這點我也有試過了,但是PageControl 一拉好大小範圍,就固定住了(還是說有辦法可以再拉??)
除了每一個Page都放上DBGrid,會變成PageControl要拉很大的範圍。
還有,就是執行後3個DBGrid都會出現了~~~~><

職業: 還在為學分苦惱的學生。
怎麼會問到職業?? 那你呢??

===================引 用 AndrewK 文 章===================

[code delphi]
case PageControl1.ActivePageIndex of
1:dbgrid2.Parent := PageControl1.ActivePage;
2:dbgrid2.Parent := PageControl1.ActivePage;
end;
[/code]

建議:
其實你也可以用三個 DBGrid

請教您的職業是什麼呢??
===================引 用 kill42el 文 章===================
抱歉,又來問問題了><

這我的程式中有用到 PageControl 這物件,展開了3個 Page ,

但因為我的資料庫有兩個,所以會用到兩個 DBGrid ,以下是程式碼

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
if(DBGrid1->Visible==true)
DBGrid1->Visible=false;
else if(DBGrid1->Visible==false)
DBGrid1->Visible=true;
}
但是這樣只會讓Page1會有出現DBGrid1的資料,Page2沒出現,而Page卻也出現DBGrid1的資料

但是我需要的是在Page1只會出現DBGrid1的資料,而在Page2跟Page3則會出現DBGrid2的資料。

請各位高手、前輩幫忙,謝謝

AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-14 09:53:41 IP:203.67.xxx.xxx 訂閱
我不太懂你的意思
如果將畫面貼上來 或
上傳程式參考
也許對解決你的問題會有幫助?

===================引 用 kill42el 文 章===================
你好!!
其實你說的用三個 DBGrid
這點我也有試過了,但是PageControl 一拉好大小範圍,就固定住了(還是說有辦法可以再拉??)
除了每一個Page都放上DBGrid,會變成PageControl要拉很大的範圍。
還有,就是執行後3個DBGrid都會出現了~~~~><

------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-17 11:08:12 IP:210.71.xxx.xxx 訂閱
你好! 我已將我的程式上傳,請過目一下。

我想要的是:查詢頁的DBGrid 出現 交易地點 (OK)
新增頁的DBGrid 出現 個人資料 (跟修改頁一樣)
修改頁的DBGrid 出現 個人資料 (OK)

希望高手能幫我看一下。







===================引 用 AndrewK 文 章===================
我不太懂你的意思
如果將畫面貼上來 或
上傳程式參考
也許對解決你的問題會有幫助?

===================引 用 kill42el 文 章===================
你好!!
其實你說的用三個 DBGrid
這點我也有試過了,但是PageControl 一拉好大小範圍,就固定住了(還是說有辦法可以再拉??)
除了每一個Page都放上DBGrid,會變成PageControl要拉很大的範圍。
還有,就是執行後3個DBGrid都會出現了~~~~><

AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-17 12:41:04 IP:203.67.xxx.xxx 訂閱
建議你可以多 k  一下資料庫的書
我想接下來你要做的事,會有更多剌激好玩的 ADO 元件用法
我試的結果是將下面兩個事件中,加入以下 Code 就 ok 了

你的 Grid 是可以在拉大,PageControl 也一樣可以在拉大
甚至你可以利用元件本身的 layout 相關的屬性去設定

我的使用的軟體板本為 Delphi 2006 C

[code cpp]
void __fastcall TForm3::FormCreate(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->Open();
ADOQuery2->Close();
ADOQuery2->Open();
}

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
switch (PageControl1->ActivePageIndex)
{
case 1:DBGrid2->Parent = PageControl1->ActivePage;
case 2:DBGrid2->Parent = PageControl1->ActivePage;
}
}
[/code]
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-17 16:12:05 IP:210.71.xxx.xxx 訂閱
謝謝,AndrewK願意花時間幫我解答
但,很抱歉在問個問題
void __fastcall TForm3::FormCreate(TObject *Sender)
FormCreate 這是什麼意思呢??
因為,我不了解 所以就直接貼上去試試看
就出現
void __fastcall TForm3::FormCreate(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->Open();
ADOQuery2->Close();
TForm3::FormCreate(T0bject *)' is not a member of 'TForm3' 為什麼會說不是 TForm3 的成員 ??

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
switch (PageControl1->ActivePageIndex)
Body has already been defined for function'_fastcall TForm3::PageControl1Change(T0bject *)'

麻煩AndrewK大大在教導我一下,感激不盡




===================引 用 AndrewK 文 章===================
建議你可以多 k 一下資料庫的書
我想接下來你要做的事,會有更多剌激好玩的 ADO 元件用法
我試的結果是將下面兩個事件中,加入以下 Code 就 ok 了

你的 Grid 是可以在拉大,PageControl 也一樣可以在拉大
甚至你可以利用元件本身的 layout 相關的屬性去設定

我的使用的軟體板本為 Delphi 2006 C

[code cpp]
void __fastcall TForm3::FormCreate(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->Open();
ADOQuery2->Close();
ADOQuery2->Open();
}

void __fastcall TForm3::PageControl1Change(TObject *Sender)
{
switch (PageControl1->ActivePageIndex)
{
case 1:DBGrid2->Parent = PageControl1->ActivePage;
case 2:DBGrid2->Parent = PageControl1->ActivePage;
}
}
[/code]
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-07-17 22:55:36 IP:203.67.xxx.xxx 訂閱
程式碼不能直接貼上去
以你目前的碼式碼來看
會有兩個問題點
1. Form3 的 Oncrate 沒有宣告
2. PageControl1 的 OnChange 重覆實作

正確方式應為
1.產生 Form3 的 OnCreate 事件
2.修改 PageControl1 的 OnChange 事件
並將對應的 Code 寫上
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-07-22 10:49:51 IP:210.71.xxx.xxx 訂閱
謝謝,你的熱心指導
===================引 用 AndrewK 文 章===================
程式碼不能直接貼上去
以你目前的碼式碼來看
會有兩個問題點
1. Form3 的 Oncrate 沒有宣告
2. PageControl1 的 OnChange 重覆實作

正確方式應為
1.產生 Form3 的 OnCreate 事件
2.修改 PageControl1 的 OnChange 事件
並將對應的 Code 寫上
系統時間:2017-10-21 21:45:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!