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

DialogResult 使用問題

尚未結案
chrischi
初階會員


發表:58
回覆:59
積分:28
註冊:2004-05-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-24 10:59:30 IP:61.218.xxx.xxx 未訂閱
各位好      我在 Windows Forms Application 使用 DialogResult 遇到一個問題, 就是 Delphi 2005 的程式碼
  為何不能直接使用 DialogResult.Yes, 如下 :        Self.DialogResult := DialogResult.Yes;        *Self 是一個 Form
    *程式單元已 uses System.Windows.Forms namespace      當我一編譯程式時就會產生 Error :        [Error] MyDemo.pas(97): E2018 Record, object or class type required      但我將上述程式碼改成下述程式碼又可以 :        Self.DialogResult := System.Windows.Forms.DialogResult.Yes;      既然已經 uses System.Windows.Forms 了竟然還要加上那冗長的 System.Windows.Forms.
  才可以正確編譯, 但在使用如 DataRowState.Detached 就不會有這種問題.      看了一下 Help, DialogResult 與 DataRowState 的差別是 DataRowState 有加上 [Flags]
  這個 Attribute 而 DialogResult 沒有, 但一樣都是 enumeration 竟然有這麼大的差別.
  總不會每次使用到 DialogResult 都要那麼辛苦吧 :        // 冗長的程式碼...
    if MessageBox.Show('...', '確認', MessageBoxButtons, MessageBoxIcon.Question) = System.Windows.Forms.DialogResult.Yes then
      ...        // 合理的程式碼...
    if MessageBox.Show('...', '確認', MessageBoxButtons, MessageBoxIcon.Question) = DialogResult.Yes then
      ...      請問有何方法(限用 .NET 內建的方法)可改善這種情況嗎?
             
  謝謝      Chris
geliswu
一般會員


發表:28
回覆:15
積分:13
註冊:2004-10-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-02 17:59:27 IP:61.70.xxx.xxx 未訂閱
Dear chrischi    還記得我們在宣告Delphi 的Record也就是Enumerate的時候是宣告在Type下面,因為語言關係,DialogResult在這裡也要宣告後才可以使用,這個部分我都是這樣用的拉..你參考下..^__^    type   d_result = DialogResult;      TWinForm = class(System.Windows.Forms.Form)   .......省略     procedure InitializeComponent;     procedure Button1_Click(sender: System.Object; e: System.EventArgs);   {$ENDREGION}   strict protected     ///  /// Clean up any resources being used. /// procedure Dispose(Disposing: Boolean); override; private { Private Declarations } public constructor Create; end; implementation procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); var form1: WinForm1.TWinForm1; begin form1 := TWinForm1.Create; if d_result.Yes = form1.ShowDialog then begin MessageBox.Show('Select Yes!!') end; end;
系統時間:2024-05-06 5:01:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!