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

VCL元件,複合式元件動態建立物件討論2?

尚未結案
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-09-27 21:13:16 IP:220.134.xxx.xxx 訂閱

各位前輩:

之前我有發問VCL元件,動態建立複合式元件就是Label Textbox button這三個元件,
因為我將這三個元件合併為一個複合元件,方便版面控制,但是我額外設定一個物件欄位
想說讓使用者切換其中的Textbox,當Inputtype為1時,搭配是Label Textbox button
當Inputtype為2時,搭配是Label Combobox button,不知道要怎麼設計這個物件,因為
當我在constructor去讀取物件欄位,來依照使用者在屬性表操作,來決定物件的型態
如下程式碼,但是我發現不管怎麼設定物件捉取道欄位的值都是1,不知道要怎麼達成,
欲達成的動態切換物件型態的目的!

請前輩不吝指教和指導,萬分感謝!

constructor Test1.Create(AOwner: TComponent); // 建構子、建立物件初始狀態
begin

if GET_Inputtype = 1 then
begin
ShowMessage('type1');
end;

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-10-02 20:55:17 IP:220.134.xxx.xxx 訂閱

其他論壇有提供,尚未驗證作法,先po上來

我在indy9的idhttp裡,它在選擇要使用ntlm或base64驗證的時候,有類似下面的代碼,可能符合你的需要,我依我的理解把它寫出來,沒有實際測試過:

type
TType1 = class(TBase)
...
end;
TType2 = class(TBase)
...
end;
TBaseClass = class of TBase;

function FindBaseClass(AName: String): TBaseClass;
begin
if AName = 'Type1' then
Result := TType1
else
Result := TType2;
end;

procedure DoCreate;
var
Auth: TIdAuthenticationClass;
S: String;
Instance: TBase;
begin
if ... then S := 'Type1'
else S := 'Type2';
Auth := FindAuthClass(S);
Instance := Auth.Create;
...
end;

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
系統時間:2024-05-12 6:16:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!