【delphi問題】我想寫一個樂透的程式~不過卡點了! |
尚未結案
|
saiacade
一般會員 發表:2 回覆:5 積分:1 註冊:2005-06-14 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
saiacade
一般會員 發表:2 回覆:5 積分:1 註冊:2005-06-14 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
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 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |