請問各位大大,如何在Form中運用多用Panel 。 |
答題得分者是:P.D.
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
請問各位大大。 目前使用一個表單Form1中有4個panel和1個StatusBar等物件。
panel1是放控制按鈕如新增。刪除等等。
panel1.Align = altop
panel2是放一些文字框。
panel3是pageControl分別會開4頁面。
第一個頁面到第三個頁面是放一些文字框。
第四個頁面是放DBGrid。
panel4是放DBGrid。 當使用者選擇第四個頁面時,panel4要隱藏。
第一個頁面到第三頁面時,則會顯示。
但是當表單最大化時,好像畫面好像跑掉如下一樣。
謝謝
|
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請問各位大大。 目前使用一個表單Form1中有4個panel和1個StatusBar等物件。 panel1是放控制按鈕如新增。刪除等等。 panel1.Align = altop panel2是放一些文字框。 panel3是pageControl分別會開4頁面。 第一個頁面到第三個頁面是放一些文字框。 第四個頁面是放DBGrid。 panel4是放DBGrid。 當使用者選擇第四個頁面時,panel4要隱藏。 第一個頁面到第三頁面時,則會顯示。 但是當表單最大化時,好像畫面好像跑掉如下一樣。 謝謝看了好久才看懂, 我的建議, 你只要動 PANEL3的部份 1.PANEL3置入一個PAGECONTROL 的 ALIGN 為 alClient 2.PAGECONTROL中以進階資料頁為說明 內置入兩個PANEL3-1, PANGEL3-2 PANEL3-1 ALIGN 為 alTop, 內放所需要的欄位 PANEL3-2 ALIGN 為 alClient 內放為 dbgrid dbgrid 的 ALIGN 為 alClient 如此當 panel4 hide時, pagecontrol為 alclient 所以 pagecontrol可為最大 而 page2的 panel3-2也因為是 alClient, 所以也會填滿 pagecontrol 中 page2的空間 希望看的懂! |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
謝謝兩位大大。 您兩位的方式,我都試過嘍。
huwk大大您所提供方式可以,但是。
在pagecontrol中只有在page4時才需要去隱藏panel4。
因為如果將panel4.visible := not panel4.visible;
使用到pagecontrol.change處理則會不斷隱藏panel4. P.D.大大。
在page1到page3的grid是共同的。
只有在page4時只有顯示單獨grid。
如果使用您所說的方法。
是否page1到page3都每頁都需要產生2個panel嗎。 請各位多多指教。謝謝。
|
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
這個畫面看起來好眼熟,妳是不是要模仿鼎X的程式!
我之前也遇過這個問題,妳參考看看吧!
procedure TfrmMDBase01.PageControl1Change(Sender: TObject); begin inherited; if PageControl1.ActivePage.Name = 'BrowseSheet' then //當妳的TabSheet在瀏覽資料時 begin DBGrid1.Align := alBottom; PageControl1.Align := alClient; DBGrid1.Height := 0; end else begin PageControl1.Align := alTop; DBGrid1.Align := alClient; PageControl1.Height := FPageControl1Height; end; end;我在程式一開始時有先吧PageControl的高度先記到FPageControl1Height變數裡 Ian |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
Ian大大。
您好。被您猜對。
不好意思,沒有使用您所提供的方法。
因為我的grid有2個。
後來我在PageControl1Change中使用以下。
if PageControl1.ActivePage = TabSheet4 then
begin
if panel4.Visible = True then begin
panel3.Align := alClient;
panel4.visible := not panel4.visible;
end else begin
panel3.Align := alClient;
end;
end
else
begin
if panel4.Visible = False then begin
panel4.visible := not panel4.visible;
end;
end; 不好意思,在請各位大大。
當畫面按最大化時。
會出現如下圖的情況。
是否可以當我選擇最大化時。
選擇page1到page3時,
panel4會跟著往上移,
還原時又可以看到。 謝謝
|
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |