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

請教TTabsheet 與TShape 之問題?

尚未結案
wilsonlai
一般會員


發表:4
回覆:3
積分:1
註冊:2004-02-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-12 12:08:27 IP:202.175.xxx.xxx 未訂閱
各位大大好!我建立了一個FORM, FORM 的左邊放上一個PageControl(including 2 Tabsheets),而每個TabSheet上都分別放置一個TShape. 如果我想在click shape 時, FORM的右邊會動態出現物件;即 Shape1.OnClick 時會出現Panel, Shape2.OnClick 時會出現DBGrid. 它們的位置都是一樣的, 哪是不是在design interface 時物件會重疊? 請問我要怎樣設計Form 上面的介面, 程式要如何撰寫? Thx!!!
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-12 13:29:11 IP:210.68.xxx.xxx 未訂閱
最簡單的方法就是用Visable 屬性來控制... 全部物件放在同樣的位置, visable:=false    當Shape1.OnClick時  Panel1.visable:=true; 其他的物件visable:=false; Shape2.OnClick  DBGrid1.visable:=true; 其他的物件visable:=false;    ~悠遊法國號~ 發表人 - yachanga 於 2004/04/12 13:32:47
wilsonlai
一般會員


發表:4
回覆:3
積分:1
註冊:2004-02-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-12 14:15:19 IP:202.175.xxx.xxx 未訂閱
yachanga大大. 我知道可以用visible這個屬性,可是這樣子在form上面 放components的時候就不是要重疊了嗎? thx!!!
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-12 17:19:05 IP:210.68.xxx.xxx 未訂閱
Hi wilsonlai 有一個方法可以Design mode不重疊.. 在FORM 右邊放一個Panel2    當Shape1.OnClick時 Panel1.visable:=true; 其他的物件visable:=false;   panel1.parent:=panel2;    Shape2.OnClick DBGrid1.visable:=true; 其他的物件visable:=false;       DBGrid1.parent:=panel2;    另外, 還可以動態指定位置喔 dbgrid1.Align:=alClient;    TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);    ~悠遊法國號~ 發表人 - yachanga 於 2004/04/12 17:22:50
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-14 16:43:56 IP:219.77.xxx.xxx 未訂閱
引言: 各位大大好!我建立了一個FORM, FORM 的左邊放上一個PageControl(including 2 Tabsheets),而每個TabSheet上都分別放置一個TShape. 如果我想在click shape 時, FORM的右邊會動態出現物件;即 Shape1.OnClick 時會出現Panel, Shape2.OnClick 時會出現DBGrid. 它們的位置都是一樣的, 哪是不是在design interface 時物件會重疊? 請問我要怎樣設計Form 上面的介面, 程式要如何撰寫? Thx!!!
procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer ;
begin
  for i := 0 to (PageControl1.PageCount - 1) do
  begin
    PageControl1.Pages[i].TabVisible := False ;
  end;
  PageControl1.ActivePageIndex := 0 ;    end;
方法有很多種,不過這一個方法最簡單,但畫面就不太美觀,你可以加入另一個 pagecontrol ,開兩個新 tabsheet ,分別放入你要的 panel及 dbgrid 於兩個 tabsheet 內,程式開啟時就將 Pagecontrol 上的 tab 拿掉,你可以因應你的程式操作,用程式碼操控要轉換到那一個 tabsheet 上,你在設計時可以不用改變那些 TabVisible 值。
wilsonlai
一般會員


發表:4
回覆:3
積分:1
註冊:2004-02-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-17 14:30:52 IP:202.175.xxx.xxx 未訂閱
yachanga 大大, 我試過你的方法,在design時候會有點複雜!By the way, thank for your help? 還有TATSU大大, Thanks A Lot!!!
系統時間:2024-05-17 19:58:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!