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

請教元件設計,property 的值要如何選取

答題得分者是:Zard
Dark852
一般會員


發表:14
回覆:19
積分:6
註冊:2004-09-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-27 13:04:32 IP:203.185.xxx.xxx 未訂閱
我跟了以下做了一個TMyComponent的元件 但有問題
unit MyComponent;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;    type
  TDay = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
  TMyComponent = class(TEdit)
  private
    { Private declarations }
    FDay: TDay;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
    property Day: TDay read FDay write FDay;
  end;    procedure Register;    implementation    procedure Register;
begin
  RegisterComponents('Custom', [TMyComponent]);
end;    end.
元件的 property 多了一個 叫 day 的pull down menu 但我要怎麼才可以取得我所選的 day 數值呢 EG. 我要取得text的值就用 元件名.text 發表人 - Dark852 於 2004/10/27 13:21:39
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-27 13:21:28 IP:210.243.xxx.xxx 未訂閱
新增處幫你用紅字標起來, 原理就是這行:    property Day: TDay read FDay write FDay; 當你從pull down menu選好後, 值會寫進FDay, 所以要取得其值只要寫一個 function回傳 FDay即可.
unit MyComponent;    interface    uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;    type
  TDay = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
  TMyComponent = class(TComponent)
private
{ Private declarations }
  FDay: TDay;
protected
{ Protected declarations }
public
{ Public declarations }
  Function GetDay(): TDay;
published
{ Published declarations }
  property Day: TDay read FDay write FDay;
end;    procedure Register;    implementation    Function TMyComponent.GetDay(): TDay;
begin
  Result := FDay;
end;    procedure Register;
begin
  RegisterComponents('Custom', [TMyComponent]);
end;    end.    
change.jian
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-27 13:23:49 IP:61.218.xxx.xxx 未訂閱
hi,Dark852: 如果你的自製元件裡,有自訂的屬性型態,如你自己訂的TDay,那麼,你就要為你的自訂型態設計其屬性編輯器. 可以參考這裡: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57953
Dark852
一般會員


發表:14
回覆:19
積分:6
註冊:2004-09-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-27 14:19:25 IP:203.185.xxx.xxx 未訂閱
Zard大大謝謝你的方法 但如果我還有一個問題 如果我想這樣做要怎麼改呢 因為GetDay Return 回來的type 不是string If (元件.GetDay='Monday') ........ If (元件.GetDay='Sunday') ........
Dark852
一般會員


發表:14
回覆:19
積分:6
註冊:2004-09-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-27 15:07:38 IP:203.185.xxx.xxx 未訂閱
我已經找到解決的方法了 謝了
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-27 16:11:33 IP:202.145.xxx.xxx 未訂閱
Dark852 妳好,張貼程式請縮排,詳見 【公告】程式碼張貼規則與方法  http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57538 敬請配合,此次我已協助修改,否則程式碼未縮排文章將視為不良文章刪除    
系統時間:2024-05-17 10:20:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!