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

請問"運算子是變數"的新手觀念

答題得分者是:Chance36
wilke
一般會員


發表:5
回覆:5
積分:2
註冊:2004-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-19 04:18:23 IP:61.216.xxx.xxx 未訂閱
我是個初學者,有很多觀念還不是很清楚,請前輩多多指教 我在介面新增了3個Edit.其中Edit3是由ComboBox1傳入運算子+ - * / div mod Edit1和Edit2是讓使用者填入要運算的數字,前面都還OK,到了Button1Click要運算時我想不出來要如何把運算子傳入="=...請指點指點我..感謝!!
var
  Form1: TForm1;
  T: String;
implementation    {$R *.dfm}    procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  T := ComboBox1.Text;
  Edit3.Text := T;
end;    procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
  ComboBox1.Text := '';
end;    procedure TForm1.Button1Click(Sender: TObject);
var 
  I,J: Integer;
begin
  I := StrToInt(Edit1.Text);
  J := StrToInt(Edit2.Text);    end;
發表人 - wilke 於 2004/10/20 00:17:33
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-19 04:35:49 IP:203.204.xxx.xxx 未訂閱
wilke 你好
  其實Edit3應該用不到,使用Combobox即可以了
procedure TForm1.Button1Click(Sender: TObject);
var
  I,J: Integer;
  Ans : Extended ;
begin
  Try
    I := StrToInt(Edit1.Text);
    J := StrToInt(Edit2.Text);
  Except
    ShowMessage('請輸入正確的整數值');
    Exit;
  End;
  Case ComboBox1.ItemIndex Of
    0 : Ans := (I J) ; //  
    1 : Ans := (I-J) ; // -
    2 : Ans := (I*J) ; // *
    3 : Ans := (I/J) ; // /
    4 : Ans := (I div J) ; // div
    5 : Ans := (I mod J) ; // mod
    Else Begin
      Showmessage('請選擇運算子');
      Exit;
    End;
  End;
  ShowMessage(FloatToStr(Ans));
end;
 
_______________________________________ 深藍的魚,祝您好運..........連連
wilke
一般會員


發表:5
回覆:5
積分:2
註冊:2004-04-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-19 04:54:35 IP:61.216.xxx.xxx 未訂閱
謝謝版大解答^_^"...版主果然不一樣,這麼晚還在回覆問題,真是辛苦您了 不過我還有個疑問..像是運算子 - * /這些若硬是不用case敘述去做的話, 我這個方法,運算子是變數..可以嗎? 再次謝謝您..
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-19 05:10:23 IP:203.204.xxx.xxx 未訂閱
你好
  我也很想睡呀!但是失眠沒辦法,只好上網逛逛囉!    另外!不用Case 要用什麼呢?直接判斷文字嗎?,那更累啊!如下:      If Edit3.Text=' ' Then 
    Ans := (I   J)
  Else Edit3.Text='-' Then 
    Ans := (I - J)
  Else Edit3.Text='*' Then 
    Ans := (I * J)
  Else Edit3.Text='/' Then 
    Ans := (I / J)
  Else Edit3.Text='div' Then  // 還要注意大小寫的問題
    Ans := (I div J)
  Else Edit3.Text='mod' Then 
    Ans := (I mod J);    好像不會比較好吧!
當然啦!你若有用Express Parser 的話,可以將運算式組合好後交給它算出結果。
_______________________________________ 深藍的魚,祝您好運..........連連 發表人 - chance36 於 2004/10/19 05:14:00
wilke
一般會員


發表:5
回覆:5
積分:2
註冊:2004-04-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-19 05:29:22 IP:61.216.xxx.xxx 未訂閱
@"@真是一語驚醒夢中人..看來我被一堆轉來轉去的函式給搞昏頭了 ..我還在想說有沒有類似字串轉運算子之類的="=..好笑吧.噗噗。 除了版大的方法好以外..要不然只能自己要寫函式..更累.. 偷懶到有點本末倒置..被自己打敗了    至於版大說的Express Parser <==這個是什麼我還沒學到^_^"..慢慢摸索中.. 謝謝您..多了個關鍵字能讓我去找資料
系統時間:2024-06-15 15:38:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!