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

如何在自定的元件中加上connection屬性?

答題得分者是:change.jian
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-09 12:05:47 IP:211.23.xxx.xxx 未訂閱
請教各位前輩:   原本在自定的元件中動態產生TADOConnection,   但為了讓元件更具彈性,想要在元件中加上connection屬性,   如同TADOQuery中的connection屬性,   參考一些source但還是試不出來!請各位前輩指教,謝謝!!     原來動態產生TADOConnection的程式:    constructor TAddrPanel1.Create(AOwner: TComponent);   begin   :   :   Connect1:=TADOConnection.Create(Self); Connect1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Addr.Mdb;Persist Security Info=False'; Connect1.LoginPrompt:=False; qry1:=TADOQuery.Create(Self); qry1.Connection:=Connect1; :
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-09 13:28:37 IP:61.218.xxx.xxx 未訂閱
不曉得這是不是你要的,參考一下    
type
  TAddrPanel1 = class(XXXX)
  private
    FConnected:Boolean
  public
    property Connected:Boolean read FConnected write SetConnected;
  end;
  
  ....
  
  procedure TAddPanel1.SetConnected(Value:Boolean);
  begin
    Connect1.Connected:=Value;
    FConnected:=Value;
    qry1.Connection:=Value;
  end;
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-09 13:44:33 IP:211.23.xxx.xxx 未訂閱
謝謝change.jian版主的指教! 您可能誤會我的意思,我指的是TADOConnection而非boolean! 我查了ADODB的SOURCE但看不明白! published     Property Connection: TADOConnection read FConnection write SetConnection;
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-09 14:10:58 IP:61.218.xxx.xxx 未訂閱
找到你說的source了,是在TCustomADODataSet裡的,對嗎?    這樣回到問題的原點了,你的TAddrPanel1是做什麼用的,或者說你是要寫出什麼功能的object?我看你的程式語法沒有問題啊
Connect1:=TADOConnection.Create(Self);
Connect1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Addr.Mdb;Persist Security Info=False';
Connect1.LoginPrompt:=False;
qry1:=TADOQuery.Create(Self);
qry1.Connection:=Connect1;    
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-09 14:43:15 IP:211.23.xxx.xxx 未訂閱
謝謝版主! 原本在自定的元件中是動態產生TADOConnection,所以那段source沒有問題! 但為了讓元件更具彈性,想要在元件中加上connection屬性, 如同TADOQuery中的connection屬性一樣的操作! 也就是在DesignTime手動加入TADOConnection元件,然後 點選自定元件中的connection屬性,取入剛剛手動加入的TADOConnection! 不知道這樣解釋清楚嗎? 謝謝!!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-09 15:15:59 IP:61.218.xxx.xxx 未訂閱
不曉得這樣是不是你要的,如下:    
type
  TAddrPanel1 = class(XXXX)
  private
    FConnection:TADOConnection; 
    FQry:TADOQuery;
    FOwner:TComponent;
  public
    property Connection:TADOConnection read FConnection write SetConnection;
    constructor Create(AOwner:TCOmponent);
  end;
  
  ....
  
  constructor TAddrPanel1.Create(AOwner: TComponent);
  begin
    FOwner:=AOwner;
    :
    :
    //Connect1:=TADOConnection.Create(Self);
    //Connect1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Addr.Mdb;Persist Security Info=False';
    //Connect1.LoginPrompt:=False;
    //ADOConnection就不要自己產生了,因為要可以由外界指定,改成在private留一個變數即可
    qry1:=TADOQuery.Create(Self);
    //qry1.Connection:=Connect1; <--這一行改到SetConnection裡
  end;      
  procedure TAddPanel1.SetConnection(Value:TADOConnection);
  begin
    FConnection:=Value;
    FQry.Connection:=Value; 
  end;
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-09 15:50:13 IP:211.23.xxx.xxx 未訂閱
謝謝change.jian版主費心幫忙!問題已解決! (先前看了
系統時間:2024-11-23 3:36:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!