Q&A

  • 정말 답답해서 미치겠슴다.
오류도 뜨지 않는데 왜 안될까요???

미치겠슴다.



고수님들!!

아래에 소스를 적어놓았습니다.

도대체 왜, 왜, 안되는지 알려주시면 넘넘 감사하겠습니다.

================= 아 래 ===============

소스



Form에는요,

1. top바 ; [시작]과[끝]

2. 메모

3. 버튼 3개

4. Panel 3개(버튼 옆에 하나씩 있음다)

5. StatusBar



메모장은 c:Hncquiz에 있구요,



코드는 요,

unit munje3;



interface



uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, Menus, ExtCtrls, StdCtrls, ComCtrls;



type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

StatusBar1: TStatusBar;

procedure FormCreate(Sender: TObject);

procedure Chulje;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;





type

Tmunje=record

mun:string[50];

b1:string[30];

b2:string[30];

b3:string[30];

ans:integer

end;

const

total=23; {총 문제 개수}

var

Form1: TForm1;

munje:array [1..total] of Tmunje;

nowmun:integer; {현재 선택된 문제}

NO,NX:integer; {맞춘 개수, 틀린 개수}



implementation



{$R *.DFM}



{난수로 문제를 선택한 후 문제와 보기를 폼에 출력한다.}

procedure TForm1.Chulje;

begin

nowmun:=Random(total)+1;

Memo1.Text:=munje[nowmun].mun;

Panel1.Caption:=munje[nowmun].b1;

Panel2.Caption:=munje[nowmun].b2;

Panel3.Caption:=munje[nowmun].b3;

end;



procedure TForm1.FormCreate(Sender: TObject);

var

F1:TextFile;

i:integer;

st:string;

begin

AssignFile(F1,'c:hncQuiz.Txt'); {할당}

Reset(F1); {오픈}

{문제를 순서대로 읽어와 배열에 담는다}

for i:=1 to total do

begin

readln(F1,munje[i].mun);

readln(F1,munje[i].b1);

readln(F1,munje[i].b2);

readln(F1,munje[i].b3);

readln(F1,st);

munje[i].ans:=StrToInt(st);

end;

CloseFile(F1);

Randomize;

end;



procedure TForm1.N2Click(Sender: TObject);

begin

Chulje;

NO:=0;

NX:=0;

StatusBar1.SimpleText:='번호를 선택하십시요';

end;



procedure TForm1.N3Click(Sender: TObject);

begin

close; {종료}

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

{답과 버튼의 번호를 비교한다}

if (Sender as TButton).tag=munje[nowmun].ans then

NO:=NO+1 {맞춘 개수 증가}

else

NX:=NX+1; {틀린 개수 증가}

StatusBar1.SimpleText:='총 '+ IntToStr(NO+NX)+' 문제 중 '+

IntToStr(NO) +' 문제를 맞춤';

Chulje; {다시 문제 출제}

end;



end.



위와 같답니다. 에러도 안뜨는데 왜 안되는지요

그럼 많은 고수님들의 가르침을 기다리며

이만 총총..

1  COMMENTS
  • Profile
    홍성락 2001.11.07 07:27
    왕초보 wrote:

    > 오류도 뜨지 않는데 왜 안될까요???

    > 미치겠슴다.

    >

    > 고수님들!!

    > 아래에 소스를 적어놓았습니다.

    > 도대체 왜, 왜, 안되는지 알려주시면 넘넘 감사하겠습니다.

    > ================= 아 래 ===============

    > 소스

    >

    > Form에는요,

    > 1. top바 ; [시작]과[끝]

    > 2. 메모

    > 3. 버튼 3개

    > 4. Panel 3개(버튼 옆에 하나씩 있음다)

    > 5. StatusBar

    >

    > 메모장은 c:Hncquiz에 있구요,

    >

    > 코드는 요,

    > unit munje3;

    >

    > interface

    >

    > uses

    > SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

    > Forms, Dialogs, Menus, ExtCtrls, StdCtrls, ComCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Memo1: TMemo;

    > Button1: TButton;

    > Button2: TButton;

    > Button3: TButton;

    > Panel1: TPanel;

    > Panel2: TPanel;

    > Panel3: TPanel;

    > MainMenu1: TMainMenu;

    > N1: TMenuItem;

    > N2: TMenuItem;

    > N3: TMenuItem;

    > StatusBar1: TStatusBar;

    > procedure FormCreate(Sender: TObject);

    > procedure Chulje;

    > procedure N2Click(Sender: TObject);

    > procedure N3Click(Sender: TObject);

    > procedure Button1Click(Sender: TObject);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    >

    > type

    > Tmunje=record

    > mun:string[50];

    > b1:string[30];

    > b2:string[30];

    > b3:string[30];

    > ans:integer

    > end;

    > const

    > total=23; {총 문제 개수}

    > var

    > Form1: TForm1;

    > munje:array [1..total] of Tmunje;

    > nowmun:integer; {현재 선택된 문제}

    > NO,NX:integer; {맞춘 개수, 틀린 개수}

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > {난수로 문제를 선택한 후 문제와 보기를 폼에 출력한다.}

    > procedure TForm1.Chulje;

    > begin

    > nowmun:=Random(total)+1;

    > Memo1.Text:=munje[nowmun].mun;

    > Panel1.Caption:=munje[nowmun].b1;

    > Panel2.Caption:=munje[nowmun].b2;

    > Panel3.Caption:=munje[nowmun].b3;

    > end;

    >

    > procedure TForm1.FormCreate(Sender: TObject);

    > var

    > F1:TextFile;

    > i:integer;

    > st:string;

    > begin

    > AssignFile(F1,'c:hncQuiz.Txt'); {할당}

    > Reset(F1); {오픈}

    > {문제를 순서대로 읽어와 배열에 담는다}

    > for i:=1 to total do

    > begin

    > readln(F1,munje[i].mun);

    > readln(F1,munje[i].b1);

    > readln(F1,munje[i].b2);

    > readln(F1,munje[i].b3);

    > readln(F1,st);

    > munje[i].ans:=StrToInt(st);

    > end;

    > CloseFile(F1);

    > Randomize;

    > end;

    >

    > procedure TForm1.N2Click(Sender: TObject);

    > begin

    > Chulje;

    > NO:=0;

    > NX:=0;

    > StatusBar1.SimpleText:='번호를 선택하십시요';

    > end;

    >

    > procedure TForm1.N3Click(Sender: TObject);

    > begin

    > close; {종료}

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > {답과 버튼의 번호를 비교한다}

    > if (Sender as TButton).tag=munje[nowmun].ans then

    > NO:=NO+1 {맞춘 개수 증가}

    > else

    > NX:=NX+1; {틀린 개수 증가}

    > StatusBar1.SimpleText:='총 '+ IntToStr(NO+NX)+' 문제 중 '+

    > IntToStr(NO) +' 문제를 맞춤';

    > Chulje; {다시 문제 출제}

    > end;

    >

    > end.

    >

    > 위와 같답니다. 에러도 안뜨는데 왜 안되는지요

    > 그럼 많은 고수님들의 가르침을 기다리며

    > 이만 총총..

    //////////////////////////////////////////////////////////

    원하는거와 무엇이 문제인지 자세히 설명하시죠!

    일단 코딩에는 문제가 없는듯합니다.

    소스를보니 문제와 보기3개, 답을 읽어 버튼3개로 답을 해서

    문제