Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2009, 01:34   #1
doodlezD
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию Помогите пожалуйста доделать програму в делфи!

Помогите пожалуйста доработать эту программу!
Мне нужно чтоб вопросы выводились при каждом открытие проги в случайном порядке! и ещё зделать меню со справкой о программе!
Прошу вас! Мне очень срочно нужно.
Код ниже!

Код:

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    AnswerGroup: TRadioGroup;
    Button1: TButton;
    TestBox: TComboBox;
    GroupBox1: TGroupBox;
    Question: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure LoadTest(Index: integer);
    procedure LoadQuestion(Index: integer);
    procedure Button1Click(Sender: TObject);
    procedure TestBoxCloseUp(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const
  TestName='Test_'; 
  max=1000; 
var
  Form1: TForm1;
  QuestionText: array [0..max] of string; 
  AnswerQuestion: array [0..max] of byte; 
  QuestionText1: array [0..max] of string;
  QuestionText2: array [0..max] of string;
  QuestionText3: array [0..max] of string;
  Ball: integer=0;                        
  now: integer=0;                         
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  if AnswerQuestion[now]=AnswerGroup.ItemIndex+1 then  
  inc(ball);
  AnswerGroup.ItemIndex:=-1;  
  inc(now);                  
  LoadQuestion(now);          
end;
procedure TForm1.FormCreate(Sender: TObject);
var	
  s: Tstrings;
  i: Integer;
begin
  i:=0;
  while FileExists(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt') do  
  begin
  application.ProcessMessages;  
  s:=tstringlist.Create;        
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt'); 
    if s.Text<>'' then  
    TestBox.Items.Add(s.Strings[0]); 
  s.Free;    
inc(i);   
 end;
end;
procedure TForm1.LoadTest(Index: integer);   
var
  s: Tstrings;
  j, h: Integer;
begin
  h:=0;
s:=tstringlist.Create;  
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(Index)+'.txt'); 
    if s.Text<>'' then  
    begin
    form1.Caption:=s.Strings[0];   
   for j := 1 to s.Count - 1 do
      begin
        if s.Strings[j]='__________' then  
        begin
        QuestionText[h]:=s.Strings[j+1];      
  QuestionText1[h]:=s.Strings[j+2];
        QuestionText2[h]:=s.Strings[j+3];
        QuestionText3[h]:=s.Strings[j+4];
        AnswerQuestion[h]:=strtoint(s.Strings[j+5]); 
        inc(h);
        end;
      end;
    end;
s.Free; 
  LoadQuestion(now);
end;

procedure TForm1.TestBoxCloseUp(Sender: TObject);
begin
    ball:=0;
  now:=0;
  button1.Enabled:=true;
  LoadTest(TestBox.ItemIndex);
end;

procedure TForm1.LoadQuestion(Index: integer);
begin
  if QuestionText[Index]<>'' then
  begin
  AnswerGroup.Items.Clear;
  Question.Caption:=QuestionText[Index];
  AnswerGroup.Items.Add(QuestionText1[index]);
  AnswerGroup.Items.Add(QuestionText2[index]);
  AnswerGroup.Items.Add(QuestionText3[index]);
  end
else 
  begin
  showmessage('Тест завершен'+#13+'Правильных ответов: '+inttostr(ball)); 
  button1.Enabled:=false; 
  end;
end;

end.

Последний раз редактировалось Stilet; 17.06.2009 в 08:28.
doodlezD вне форума Ответить с цитированием
Старый 17.06.2009, 08:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попробуй такое:
Код:
 randomize;
 TestBox.Items.insert(random(TestBox.Items.count-1),s.Strings[0]);
Не тестировал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2009, 11:41   #3
doodlezD
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

оу, я попробывал. Оно чтото не меняет местами вопросы.
doodlezD вне форума Ответить с цитированием
Старый 19.06.2009, 22:14   #4
doodlezD
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

всё вышло)
а можете помоч зделать меню и справку??
doodlezD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста помогите доделать программу Kaddafi Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2009 21:08