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

關於TForm1::FormCreate

尚未結案
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-01 14:51:36 IP:114.46.xxx.xxx 訂閱
我個人看了書寫關於猜數字的簡單語法

會有我猜.重來.關閉 三個按鈕 分別有edit和ListBox1

要加入這段語法,就是不知道要如何寫入
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int s;
randomize();
num=random(10);
while(1){
s=random(10);
for(int i=1;i<=num.Length();i ){
if(IntToStr(s)==num.SubString(i,1)) {s=0; break;}
}
if(s!=0) num=num IntToStr(s);
if(num.Length()==4) break;
}
ShowMessage(num);

}







以下是其他語法

//---------------------------------------------------------------------------
#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String num;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
int an=0,bn=0;
for(int i=1;i<=4;i ){
if(Edit1->Text.SubString(i,1)==num.SubString(i,1)) an ;
for(int j=1;j<=4;j )
if(Edit1->Text.SubString(i,1)==num.SubString(j,1)) if(i!=j)bn ;
}
ListBox1->Items->Add(Edit1->Text " => " IntToStr(an) "A" IntToStr(bn) "B");
if(an==4) {
ListBox1->Items->Add("猜對了...");
SpeedButton1->Enabled=false;
Edit1->Enabled=false;
}
Edit1->Text="";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
ListBox1->Clear();
num="";
FormCreate(Sender);
SpeedButton1->Enabled=true;
Edit1->Enabled=true;
Edit1->SetFocus();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
Close();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
for(int i=1;iText.Length();i )
if(Edit1->Text.SubString(Edit1->Text.Length(),1)==Edit1->Text.SubString(i,1)){
Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);
Edit1->SelStart=Edit1->Text.Length();
}
//---------------------------------------------------------------------------


如果未加入void __fastcall TForm1::FormCreate(TObject *Sender)這段語法的話


void __fastcall TForm1::Edit1Change(TObject *Sender)
{ <====程式會卡在這行
編輯記錄
winds2008 重新編輯於 2008-12-01 15:02:11, 註解 無‧
winds2008 重新編輯於 2008-12-01 15:21:12, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-01 15:02:46 IP:118.169.xxx.xxx 訂閱
你要找什麼元件?
FormCreate指的是事件喔
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-01 15:09:03 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
你要找什麼元件?
FormCreate指的是事件喔

我個人看了書寫關於猜數字的簡單語法

會有我猜.重來.關閉 三個按鈕 分別有edit和ListBox1

要加入這段語法,就是不知道要如何寫入
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int s;
randomize();
num=random(10);
while(1){
s=random(10);
for(int i=1;i<=num.Length();i ){
if(IntToStr(s)==num.SubString(i,1)) {s=0; break;}
}
if(s!=0) num=num IntToStr(s);
if(num.Length()==4) break;
}
ShowMessage(num);

}







以下是其他語法

//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String num;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
int an=0,bn=0;
for(int i=1;i<=4;i ){
if(Edit1->Text.SubString(i,1)==num.SubString(i,1)) an ;
for(int j=1;j<=4;j )
if(Edit1->Text.SubString(i,1)==num.SubString(j,1)) if(i!=j)bn ;
}
ListBox1->Items->Add(Edit1->Text " => " IntToStr(an) "A" IntToStr(bn) "B");
if(an==4) {
ListBox1->Items->Add("猜對了...");
SpeedButton1->Enabled=false;
Edit1->Enabled=false;
}
Edit1->Text="";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
ListBox1->Clear();
num="";
FormCreate(Sender);
SpeedButton1->Enabled=true;
Edit1->Enabled=true;
Edit1->SetFocus();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
Close();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
for(int i=1;iText.Length();i )
if(Edit1->Text.SubString(Edit1->Text.Length(),1)==Edit1->Text.SubString(i,1)){
Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);
Edit1->SelStart=Edit1->Text.Length();
}
//---------------------------------------------------------------------------


如果未加入void __fastcall TForm1::FormCreate(TObject *Sender)這段語法的話


void __fastcall TForm1::Edit1Change(TObject *Sender)
{ <====程式會卡在這行



taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-01 15:20:03 IP:118.169.xxx.xxx 訂閱
你可以在新的回應裡面修正你的問題
但不要在原文中修正,這樣會有文不對題的現象^_^

你在Form上快按滑鼠兩次,就會跳到FormCreate事件的編輯畫面
或者你可以在Object Inspector中找到事件
快按滑鼠兩次就可以到該事件的程式編寫畫面
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-01 15:24:59 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
你可以在新的回應裡面修正你的問題
但不要在原文中修正,這樣會有文不對題的現象^_^

你在Form上快按滑鼠兩次,就會跳到FormCreate事件的編輯畫面
或者你可以在Object Inspector中找到事件
快按滑鼠兩次就可以到該事件的程式編寫畫面

嗯!!知道了

可是執行後一直會在這錯誤!
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-01 15:28:54 IP:118.169.xxx.xxx 訂閱
什麼錯誤?
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-12-01 15:29:52 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
什麼錯誤?

會出現那一整排都紅色
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-12-01 15:32:59 IP:118.169.xxx.xxx 訂閱
Object Inspector裡面Edit1的Change事件有沒有東西?
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-12-01 15:51:30 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
Object Inspector裡面Edit1的Change事件有沒有東西?

嗯,找出來錯誤了

現在換
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{這行開始錯誤
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-12-01 16:14:47 IP:118.169.xxx.xxx 訂閱
會舉一反三嗎?
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-12-01 16:31:45 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
會舉一反三嗎?



謝謝指導,已經完成了

但是輸出結果讓我有點看不懂

若猜對數字和位置就以"A"表示,若數字對,位置不對則以"B"表示

因為如果輸入正確他會顯示4A0B

例如:

正確答案是9571
我猜的是9575輸出為2A2B
我猜的是9574輸出為2A1B
我猜的是9573輸出為2A1B
我猜的是9572輸出為2A1B

是否能幫我解惑
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-12-01 16:36:20 IP:118.169.xxx.xxx 訂閱
個人認為程式的邏輯問題
您應該提出您的論點,否則失去討論的意義 ^_^
winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-12-01 16:47:12 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
個人認為程式的邏輯問題
您應該提出您的論點,否則失去討論的意義 ^_^

論點就是我就算輸入亂數XAXB 他A和B都固定不會變更

taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-12-01 17:33:29 IP:118.169.xxx.xxx 訂閱
會debug嗎? 用過斷點trace過程式嗎?


===================引 用 winds2008 文 章===================
論點就是我就算輸入亂數XAXB 他A和B都固定不會變更

winds2008
一般會員


發表:1
回覆:7
積分:1
註冊:2008-12-01

發送簡訊給我
#15 引用回覆 回覆 發表時間:2008-12-03 19:04:21 IP:114.46.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
會debug嗎? 用過斷點trace過程式嗎?


===================引 用 winds2008 文 章===================
論點就是我就算輸入亂數XAXB 他A和B都固定不會變更

不會耶

系統時間:2024-05-08 5:30:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!