Q&A

  • 컴도사님들, 도와주세요!
도와주세요, 퀴즈 프로그램을 짠는데 오류가 나네요

어떻게 손을 대야 정상적으로 작동을 할까요.



소스는 아래와 같습니다.





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



unit munje1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, ComCtrls, StdCtrls;



type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

StatusBar1: TStatusBar;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Label1: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}

type

Tmunje=record

mun:string[70];

b1:string[50];

b2:string[50];

b3:string[50];

b4:string[50];

ans:integer;

total:integer;

end;



var

munje:array [1..100] of Tmunje; (1)---------- 100 대신 Total을 썼을 때 Total이

숫자라는 것을 어디에다 선언해 주나요



procedure TForm1.FormCreate(Sender: TObject);

var

F1:TextFile;

i:integer;

st:string;

begin

AssignFile(F1,'c:quiz.txt');

Reset(F1);

for i:=1 to 100 do

begin

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

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

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

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

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

readln(F1,st);

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

end;

CloseFile(F1);

Randomize;

end;



procedure TForm1.Chulje;

begin

nowmun:=Random(100+1);

Meno1.Text:=munje[mowmun].mun;

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

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

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

pannel1.Caption:=munje[nowmun].b4;

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

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

NO:=NO+1

else

NX:=NX+1

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

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



end;



end.

1  COMMENTS
  • Profile
    나그네 2001.10.19 07:12
    배열의 크기가 변할수도 있다는 말씀이신것 같군요.

    >

    > implementation

    >

    > {$R *.DFM}

    > type

    > Tmunje=record

    > ....

    > ans:integer;

    > total:integer;

    > end;

    >

    > var

    > munje:array of Tmunje; //이렇게 선언하시구요.

    >

    > procedure TForm1.FormCreate(Sender: TObject);

    > var

    > F1:TextFile;

    > i:integer;

    > st:string;

    > begin

    //배열의 길이를 설정하십시오.

    setlength(munje,100); //setlength(munje,total) 도 가능하겠져? 미리 선언되어져 있고 값이 할당되어 있다면.

    > AssignFile(F1,'c:quiz.txt');

    > Reset(F1);

    > for i:=1 to 100 do

    ....