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

【delphi問題】我想寫一個樂透的程式~不過卡點了!

尚未結案
saiacade
一般會員


發表:2
回覆:5
積分:1
註冊:2005-06-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-14 10:09:30 IP:220.131.xxx.xxx 未訂閱
var i,j: integer; begin Randomize; for i := 1 to 6 do begin repeat j := Random(38) 1; until RandomNumber[j] = 0; showmessage(Format('%.2d', [j])); Edit1.Text:= InputBox ('InputBox','請輸入第一個數字:', ''); edit2.SetFocus; Edit2.Text:= InputBox ('InputBox','請輸入第二個數字:', ''); edit3.SetFocus ; Edit3.Text:= InputBox ('InputBox','請輸入第三個數字:', ''); end; end; 想了解的人可以~復制程式碼~就大概可以了解我的問題了! showmessage(Format('%.2d', [j])); 如果我只寫上面那一行為止的話~一共會出現六次的showmessage(就是開出的號碼)~但是因為我想讓他每show一次出現的號碼就跑到edit1上面去~第二次show的號碼就跑去edit2~依此類推~可是delphi又不像vb那樣的好寫~所以失敗了~我發現了另一種寫法inputbox~就是讓執行的人~自行輸入在edit1上面~! 不過問題就在~我寫了showmessage(Format('%.2d', [j]));以下的程式碼 edit1.text.......以後的程式碼後~他會變成~每show一個數字出來~就會跑出6次的inputbox~第二次show的數字~inputbox也會再從新的跑6次! (因為按的人會按到發瘋~所以我只放edit1~edit3,正常來說要有6個)~! 所以我想問~各位delphi達人~教我一下~ 我如何讓他~showmessage第一次的號碼~就跑出第一個inputbox~然後出現第二次的showmessage的號碼後~就出現第二個inputbox(放在edit2的位置)~ …的一值到edit6~! ps.如果還是不了解我的意思的人~可以去復制程式碼run看看~! 謝謝!
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-14 11:40:01 IP:211.76.xxx.xxx 未訂閱
saiacade 您好    給個建議您參考修改一下!    
var
  Form1: TForm1;
  aryEdit : array[1..6] of TEdit; // 宣告TEdit陣列    //.....    procedure TForm1.FormCreate(Sender: TObject);
begin
  aryEdit[1] := Edit1;  // 指定對應關係
  aryEdit[1].Text := 'something you want';      aryEdit[2] := Edit2;
  aryEdit[3] := Edit3;
  aryEdit[4] := Edit4;
  aryEdit[5] := Edit5;
  aryEdit[6] := Edit6;
end;
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-14 12:17:35 IP:210.243.xxx.xxx 未訂閱
可參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=60700
saiacade
一般會員


發表:2
回覆:5
積分:1
註冊:2005-06-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-14 18:47:07 IP:220.131.xxx.xxx 未訂閱
感謝大大的熱情分享~我成功了! 再請問一下~ 可不可以教我一下~對獎怎麼寫! 就是~你可以選擇自已填寫號碼or電腦選號~ 但是當開獎後~要有一個對號的~ 比如說:讓中獎的號碼~變紅色~之類的!
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-15 23:56:48 IP:211.76.xxx.xxx 未訂閱
saiacade 您好:    其實祇要透過迴圈就能完成對號碼與更改顏色的工作,參考下列程式碼。 將每個Edit的Text轉成數字,再逐一與設定的樂透號碼比對。 當然前提是資料都沒有重複,而且對的時候如果對中的號碼數小於6,則還要對特別號。這部分就留給您修改了! 之前有用C寫了一個類似的程式,不過是著眼在如何對上萬筆的資料。    
lotto : array[1..7] of integer = (3, 8, 12, 34, 35, 41,  9);
// ...    procedure TForm1.Button3Click(Sender: TObject);
var
   k, p, guess, got : integer;
begin
  got := 0;
  for k:=1 to 6 do
     begin
       guess := StrToInt(aryEdit[k].Text);
       for p:=1 to 6 do
          begin
            if ( guess=lotto[p] ) then
              begin
                aryEdit[k].Font.Color := clRed;
                got := got   1;
                break;
              end;
           end;
     end;
  ShowMessage( IntToStr(got) );
end;    
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
系統時間:2024-06-02 1:34:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!