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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2009, 17:32   #11
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
По умолчанию

Спасибо KORN, только вот в чем проблема... он из каждой базы в каждом уровне берет только первый вопрос, а остальные игнорирует... Что делать?
kotzzz вне форума Ответить с цитированием
Старый 30.01.2009, 17:37   #12
]Wowan[
Delphi forever
Форумчанин
 
Аватар для ]Wowan[
 
Регистрация: 13.01.2009
Сообщений: 113
По умолчанию

Говорят тебе стучи в асю, подскажу как сделать
Программы на заказ Delphi, Pascal.
ася: 415 253 529. Мыло: wowan141750@gmail.com.
]Wowan[ вне форума Ответить с цитированием
Старый 30.01.2009, 17:39   #13
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

перед random(); нужно поставить randomize;
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 30.01.2009, 17:42   #14
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
По умолчанию

randomize на месте...
kotzzz вне форума Ответить с цитированием
Старый 30.01.2009, 17:51   #15
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
По умолчанию

не может ли быть ошибка из-за того что эта функция используется неоднократно?

Показываю начало кода:
Код:
begin
   ini:=tinifile.create(extractfilepath(application.exename)+'1_etap.ini');
   Count:=0;
   while ini.valueexists('baza', 'Question_'+inttostr(Count)) do
   inc(Count);
   ini.free;
  randomize;
  i:=random(Count);
  label11.Caption:=inttostr(i+1);
end;
     listbox1.Items.LoadFromFile(DirectoryListBox1.Directory+'\baza\1_etap.ini');
     if label11.Caption=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption))] then
begin label11.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
      label12.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
randomize;
p:=random(4);
p:=p+1;
if p=1 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+8)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+6)];
    end
       else
if p=2 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+8)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+6)];
    end
       else
if p=3 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+6)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+8)];
    end
       else
if p=4 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+8)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+6)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
    end
end;
end;
при этом, поясняю, базы лежат в папке с прогой, в папке под названием "Baza", в ней лежат 15 файлов ini: первый - 1_etap.ini, второй -2_etap.ini и т.д.

Да и пишет:
[Hint] Unit1.pas(511): Variable 'baza' is declared but never used in 'TForm1.FormCreate'
Переменная 'baza' объявлена но никогда не использованное в 'TForm1.FormCreate'

Последний раз редактировалось kotzzz; 30.01.2009 в 17:55.
kotzzz вне форума Ответить с цитированием
Старый 30.01.2009, 18:00   #16
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

ну чет ты намудрил... тебе нужно не только вопросы хранить в файле но и ответы...

вот пример как должен выглядеть файл
[BASE]
question_1=сколько будет 2*2?
answer1_1=4
answer2_1=5
answer3_1=2
answer4_1=ошибка
...
question_n=какой нить вапрос?
answer1_n=первый вариант ответа
answer2_n=второй вариант ответа
answer3_n=третий вариант ответа
answer4_n=четвертый вариант ответа

создаешь такой файл с вопросами ответами и далее уже считываешь из файла значения вопросов и ответов
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 30.01.2009, 18:11   #17
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Друзья мои, а почему выбрана работа именно с INI
А как же база данных какая-нибудь ?
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 30.01.2009, 18:29   #18
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

Цитата:
Я начал изучать Delphi несколько дней назад, и поэтому не удивляйтесь этому вопросу:
вот почему
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 30.01.2009, 18:34   #19
kotzzz
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от KORN Посмотреть сообщение
вот почему
да-да


KORN подскажи как переделать правильно строку:

Код:
listbox1.Items.LoadFromFile(DirectoryListBox1.Directory+'\baza\1_etap.ini');
     if label11.Caption=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption))] then
begin label11.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
      label12.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
Исходя из варианта, предложенного тобой для составления баз:
Код:
К примеру, 

question_1=Який із вчених відкрив періодичний закон?
Менделєєв
Ньютон
Ломоносов
Резерфорд
question_2=Яка із формул є формулою води?
Н2О
H2SO4
HCl
H2S

Я прописал без answer - он у меня в проге не прописан, можли обойтись без него?
Вообщем преправил код, а дальше как не знаю:
Код:
begin
  ini:=tinifile.create(extractfilepath(application.exename)+'1_etap.ini');
   Count:=0;
   while ini.valueexists('baza', 'Question_'+inttostr(Count)) do
   inc(Count);
   ini.free;
end;
begin
  randomize;
  i:=random(Count);
  label11.Caption:=inttostr(i+1);
end;
     listbox1.Items.LoadFromFile(DirectoryListBox1.Directory+'\baza\1_etap.ini');
     if label11.Caption=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption))] then
***begin label11.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
      label12.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];***
randomize;
p:=random(4);
p:=p+1;
if p=1 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+3)];
    end
       else
if p=2 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+3)];
    end
       else
if p=3 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+3)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
    end
       else
if p=4 then
    begin
       button1.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+4)];
       button2.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+3)];
       button3.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+2)];
       button4.Caption:=listbox1.Items.Strings[(listbox1.Items.IndexOf(label11.Caption)+1)];
    end
end;
end;
Где *** не могу понять: что нужно мне переправить?

Извини меня если "достал" тебя вопросами!!!
kotzzz вне форума Ответить с цитированием
Старый 30.01.2009, 18:46   #20
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

Цитата:
Я прописал без answer - он у меня в проге не прописан, можли обойтись без него?
нет, в нем же хранятся значения... ну так пропиши

button1.caption:=ini.readstring('ba se', 'answer1_'+inttostr(count), ''); // считываем ответ для первой кнопки

для вопроса и других ответов аналогично

listbox1.Items.LoadFromFile(Directo ryListBox1.Directory+'\baza\1_etap. ini');
это тебе ваще не нужно... тебе нужно работать с ini и вопрос выводить допустим в label
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мой первый редактор для игры:"Лесной мир". Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 38 09.03.2011 17:37
Нужны исходники игры "Парные картинки" Ellita Общие вопросы Delphi 5 09.05.2010 12:27
Проблемма: Программное отключение "защиты формы" влияет на скорость выполнения программного кода... StrikeR33 Microsoft Office Word 0 28.05.2008 20:11
Где можно найти исходник игры "рулетка" roll Компоненты Delphi 2 15.09.2007 22:09