Avatar billede slinky Nybegynder
12. september 2004 - 22:06 Der er 9 kommentarer

"if x, then x and x , else " problemer

Har lige lidt problemer:

AntalRigtige er en globalvariabel, af typen Integer.
Nr er en lokal varabel, af typen integer

Programmmet melder fejl ved linien med: "and AntalRigtige:= AntalRigtige+1;"
og jeg er temmelig sikker på at det er der problemet ligger. Nogen der ved hvad der kan være galt?



procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
If Radiogroup1.Itemindex=Svar[Nr]
then ShowMessage('Korrekt svar') and AntalRigtige:= AntalRigtige+1;
else ShowMessage('taber');
Nr:=Nr+1;
If Nr<=10 then Memo1.Lines.LoadFromFile('spg'+IntToStr(Nr)+'.txt')
else Showmessage('Du havde IntToStr(AntalRigtige) rigtige!');
Radiogroup1.Itemindex:=-1
end;
Avatar billede slinky Nybegynder
12. september 2004 - 22:08 #1
hele koden ser sån her ud:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    RadioGroup1: TRadioGroup;
    Memo1: TMemo;
    procedure RadioGroup1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  AntalRigtige: Integer;

implementation

{$R *.dfm}
var
Nr: Integer;
Svar: array[1..10] of Integer;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
If Radiogroup1.Itemindex=Svar[Nr]
then ShowMessage('Korrekt svar') and AntalRigtige:= AntalRigtige+1;
else ShowMessage('taber');
Nr:=Nr+1;
If Nr<=10 then Memo1.Lines.LoadFromFile('spg'+IntToStr(Nr)+'.txt')
else Showmessage('Du havde IntToStr(AntalRigtige) rigtige!');
Radiogroup1.Itemindex:=-1
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Svar[1]:=2;
Svar[2]:=1;
Svar[3]:=2;
Svar[4]:=0;
Svar[5]:=0;
Svar[6]:=1;
Svar[7]:=1;
Svar[8]:=2;
Svar[9]:=0;
Svar[10]:=1;
Nr:=1;
AntalRigtige:=0;
Form1.Memo1.Lines.LoadFromFile('spg1.txt');

end;

end.
Avatar billede Slettet bruger
12. september 2004 - 22:09 #2
Et gæt er at du skal hav e det på 2 linier, altså
then
  then ShowMessage('Korrekt svar');
  AntalRigtige:= AntalRigtige+1;
else
Avatar billede arne_v Ekspert
12. september 2004 - 22:10 #3
Mit gæt er:

if Radiogroup1.Itemindex=Svar[Nr] then begin
    ShowMessage('Korrekt svar');
    AntalRigtige:= AntalRigtige+1;
end else begin
    ShowMessage('taber');
end;
12. september 2004 - 22:11 #4
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  If Radiogroup1.Itemindex=Svar[Nr] then
  begin
    ShowMessage('Korrekt svar');
    AntalRigtige:= AntalRigtige+1;
  end
  else
    ShowMessage('taber');
  Nr:=Nr+1;
  If Nr<=10 then
    Memo1.Lines.LoadFromFile('spg'+IntToStr(Nr)+'.txt')
  else
    Showmessage('Du havde IntToStr(AntalRigtige) rigtige!');
  Radiogroup1.Itemindex:=-1
end;

Hvis du skal have to instruktioner i en if statement, skal de pakkes ind i en begin end;
Avatar billede slinky Nybegynder
12. september 2004 - 22:22 #5
Skidegodt;)
Avatar billede arne_v Ekspert
19. september 2004 - 18:50 #6
Et svar fra mig for begin end
04. oktober 2004 - 23:05 #7
Hvem fik point ?
Avatar billede arne_v Ekspert
05. oktober 2004 - 00:40 #8
De er vist ikke uddelt endnu !
14. februar 2005 - 21:06 #9
Ikke fordi 30 point er meget, men af principielle grunde synes jeg at det er på tide at du lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester