自製的元件屬性可不可以只抓取某一類別的元件? |
尚未結案
|
PhotoRGB
一般會員 發表:3 回覆:5 積分:1 註冊:2002-08-17 發送簡訊給我 |
以下只截錄該屬性部份…
目前FActionEdit這個屬性在設定時會連其他屬於TWinControl類別的元件都抓出來,
可不可以只抓屬於TEdit類別的元件呢?
我把TWinControl改成TEdit之後連一個元件都抓不到,有人可以提供方法解決嗎?
謝謝!
:
略
:
private
FActionEdit: TWinControl;
procedure SetActionEdit(Value: TWinControl);
published
property ActionEdit: TWinControl read FActionEdit write SetActionEdit;
:
略
:
procedure ActionSQL.SetActionEdit(Value: TWinControl);
begin
FActionEdit:= Value;
if Value <> nil then Value.FreeNotification(Self);
end;
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
引言: private FActionEdit: TEdit;//不一定要改 procedure SetActionEdit(Value: TEdit); published property ActionEdit: TEdit read FActionEdit write SetActionEdit; : 略 : procedure ActionSQL.SetActionEdit(Value: TEdit); begin FActionEdit:= Value; if Value <> nil then Value.FreeNotification(Self); end;混心雜欲 棄修身~唉
------
唉~ |
te_hsun
一般會員 發表:43 回覆:34 積分:20 註冊:2002-03-25 發送簡訊給我 |
private FActionEdit: TCustomEdit; procedure SetActionEdit(Value: TCustomEdit); function GetActionEditText: string; procedure SetActionEditText(const Value: string); protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; published property ActionEdit: TCustomEdit read FActionEdit write SetActionEdit; property ActionEditText: string read GetActionEditText write SetActionEditText; end; implementation procedure ActionSQL.SetActionEdit(Value: TCustomEdit); begin FActionEdit:= Value; if Value <> nil then Value.FreeNotification(Self); end; procedure ActionSQL.Notification(AComponent: TComponent; Operation: TOperation); begin inherited Notification(AComponent, Operation); if (Operation = opRemove) and (AComponent = FActionEdit) then FActionEdit:= nil; end; function ActionSQL.GetActionEditText: string; begin Result:= FActionEdit.Text; end; procedure ActionSQL.SetActionEditText(const Value: string); begin FActionEdit.Text:= Value; end;發表人 - te_hsun 於 2005/09/02 10:08:30 |
PhotoRGB
一般會員 發表:3 回覆:5 積分:1 註冊:2002-08-17 發送簡訊給我 |
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
|
PhotoRGB
一般會員 發表:3 回覆:5 積分:1 註冊:2002-08-17 發送簡訊給我 |
|
te_hsun
一般會員 發表:43 回覆:34 積分:20 註冊:2002-03-25 發送簡訊給我 |
|
PhotoRGB
一般會員 發表:3 回覆:5 積分:1 註冊:2002-08-17 發送簡訊給我 |
//原程式碼
unit openSQL; interface uses
Windows, Messages, SysUtils, Classes, DB, ADODB, QStdCtrls, Controls; type
owSQL = class(TADOQuery) private
{ Private declarations }
FAllowEdit : Boolean;
FActionEdit: TCustomEdit; procedure SetActionEdit(Value: TCustomEdit); protected
{ Protected declarations }
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
{ Public declarations }
published
{ Published declarations }
Property AllowEdit :Boolean Read FAllowEdit Write FAllowEdit;
property ActionEdit : TCustomEdit read FActionEdit write SetActionEdit;
end; procedure Register; implementation procedure Register;
begin
RegisterComponents('Samples', [owSQL]);
end; { owSQL } procedure owSQL.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (Operation = opRemove) and (AComponent = FActionEdit) then
FActionEdit := nil;
end; procedure owSQL.SetActionEdit(Value: TCustomEdit);
begin
FActionEdit := Value;
if Value <> nil then Value.FreeNotification(Self);
end; end. 上圖為上面程式碼的結果,下圖為我把TCustomEdit改成TWinControl的結果。
|
te_hsun
一般會員 發表:43 回覆:34 積分:20 註冊:2002-03-25 發送簡訊給我 |
|
PhotoRGB
一般會員 發表:3 回覆:5 積分:1 註冊:2002-08-17 發送簡訊給我 |
|
te_hsun
一般會員 發表:43 回覆:34 積分:20 註冊:2002-03-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |