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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2013, 17:41   #11
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

пока пишу саму проверку тестирования(не оч выходить с радиогруппой, а как использовать радиокнопки при разных вариантах ответа?), а шифрование потом, за подсказку спасибо
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 03.05.2013, 18:49   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Взял из одной из старых тем и немного "допилил".
Пример теста. Используется шифрование Виженера. В папке Шифровальщик программа, которая шифрует заданный файл ключом. Сам тест использует файл test1.encrypted в качестве списка вопросов и ответов. Структура списка вопросов:
Цитата:
Количество вопросов в файле
1 вопрос
количество ответов
номер правильного ответа
варианты ответа (каждый на своей строке)
2 вопрос
...
Хотя бы 1 вопрос должен быть в файле.
Вложения
Тип файла: rar Простейший тест.rar (688.1 Кб, 332 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.05.2013 в 18:51.
BDA вне форума Ответить с цитированием
Старый 03.05.2013, 19:22   #13
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Спасибо большое! Сейчас пытаюсь разобраться в вашем алгоритме, и если не секрет, как вы сделали такие кнопки, чтоб они подсвечивались? у меня windows7, но кнопки в моих программах не подсвечиваются(
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 03.05.2013, 19:28   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Пожалуйста.
У меня Delphi 2010 (и Windows 7), там так по умолчанию (правда, 1 раз случайно слетело, и тогда помогло: Project - Options - Application - Поставить галку Enable Runtime themes).

UPD
http://www.gunsmoker.ru/2011/02/dll-...de.html#delphi

ПС У меня одновременно установлены Delphi10Lite, Delphi 2010, Delphi XE3, Lazarus
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.05.2013 в 19:36.
BDA вне форума Ответить с цитированием
Старый 03.05.2013, 19:32   #15
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

У меня раньше был delphi10 lite, ооочень долго писал всякие фишки к электронному кроссворду, но вдруг понадобилось снести систему, и все проекты больше не открылись, а ваш способ не помог, но все равно спасибо) Кстати, если надо красивые кнопки или эдиты в 2007 делфи, то пропишите в разделе uses XPMan; и все)
from dark to light)

Последний раз редактировалось Алексей_2012; 03.05.2013 в 19:39.
Алексей_2012 вне форума Ответить с цитированием
Старый 03.05.2013, 19:41   #16
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Кнопки подсвечиваются? У меня все по стандарту. Может вы просто никогда не использовали XPManifest (на дельфях от Borland), который у Embracadero, похоже, по умолчанию стоит?
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 03.05.2013, 19:53   #17
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

никогда не использовал)

кстати, BDA, вы говорили что тут все затирается, а нет, почему?
Сначала затирается, потом заполняется и сверяется.


Код:
 

var n:byte=0;

procedure Tform1.vibor(kil:byte);
var no:string;
begin
if kil=StrToInt(trim(Copy(s1,k,1))) then no:='' else no:='не';
memo1.lines.add(inttostr(k)+'-'+no+'правильно;     ваш ответ:'+inttostr(kil)+';');
end;


RadioGroup1.Items.Clear;
 repeat
 begin
 RadioGroup1.Items.Add(ts.Strings[i]);
 Inc(i);
 end;
 until Trim(Copy(ts.Strings[i],1,1))='-';

 case RadioGroup1.ItemIndex of
  0: kil:=1;
  1: kil:=2;
  2: kil:=3;
  3: kil:=4;
  4: kil:=5;
  end;
  vibor(kil);
inc(n);
n- кол-во правильно отвеченных вопросов
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 03.05.2013, 20:29   #18
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Последний вопрос не понял, поэтому объясню, не опираясь на него.
Перед тестируемым находится вопрос. Он выбрал вариант ответа и нажал "Далее". В коде кнопки происходит следующее: очистка радиогруппы (что вызывает сброс выбранного варианта), заполнение радиогруппы новым вопросом, попытка определить выбранный вариант. Естественно, что программа будет считать, что тестируемый отвечает неправильно. Кстати, с таким case (в последнем посте) kil будет сохранять предыдущий ответ, если не выбран ни один ответ, а точнее, будет хранить свое инициализируещее значение, так как ни один ответ тестируемого не будет правильно определен.

Правильная последовательность:
Определение выбранного ответа
Если ответ не выбран, то игнорирование нажатия
В зависимости от наличия дальнейших вопросов - загрузка следующего, либо вывод результатов
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.05.2013, 01:56   #19
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А как в вашем тесте сделать кнопку (Назад)? Вот код, у меня не получилось
Код:
procedure TForm2.Button2Click(Sender: TObject);
var i, k: integer;
  si: string;
label m1;
begin
  if num = 1 then exit;
  for k := 1 to 2 do
  begin
    for i := strpos downto 1 do
    begin
      si := Copy(trim(q[strpos]), 1, 1);
      if (si = '1') or (si = '2') or (si = '3') or (si = '4') or (si = '5') then goto m1;
      Dec(strpos);
    end;
    m1:
    strpos := i - 2;
  end;
dec(num);
loadquestion;
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 23.05.2013, 00:16   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Во-первых, кнопку назад у меня быстро никак не добавишь - нужно менять структуру задания теста для эффективной работы.
Во-вторых, мне непонятна Ваша любовь к функции trim. Чем меньше вызовов функций, тем лучше (особенно, если она ничего полезного не делает).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать класс наследник TRadioGroup с переопределенным свойством Items fate Общие вопросы Delphi 3 20.11.2012 21:40
Не работает выборка в JQuery! pastuhdima JavaScript, Ajax 7 27.09.2012 08:11
TRadioGroup цвет шрифта volod3000 Общие вопросы Delphi 2 20.06.2011 19:56
Пишу компонент от TRadioGroup sadfeel Помощь студентам 0 14.11.2009 18:49
TRadioGroup,вопрос??? DimOn4Ik Общие вопросы Delphi 5 19.10.2009 08:23