Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.03.2015, 23:40
lexe lexe вне форума
Прохожий
 
Регистрация: 03.03.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Запарка с комбобоксами

Здравствуйте, проблема такая-появилась потребность в "тесте-тренажере",
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XPMan, ToolWin, ComCtrls, StdCtrls, TabNotBk, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Label2: TLabel;
    Label3: TLabel;
    GroupBox1: TGroupBox;
    ComboBox1: TComboBox;
    GroupBox4: TGroupBox;
    ComboBox2: TComboBox;
    GroupBox2: TGroupBox;
    ComboBox4: TComboBox;
    GroupBox3: TGroupBox;
    ComboBox3: TComboBox;
    GroupBox6: TGroupBox;
    ComboBox5: TComboBox;
    GroupBox7: TGroupBox;
    ComboBox6: TComboBox;
    GroupBox8: TGroupBox;
    ComboBox7: TComboBox;
    GroupBox9: TGroupBox;
    ComboBox8: TComboBox;
    GroupBox10: TGroupBox;
    ComboBox9: TComboBox;
    GroupBox11: TGroupBox;
    ComboBox10: TComboBox;
    ComboBox11: TComboBox;

    procedure Button1Click(Sender: TObject);
    procedure ComboBox11Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ball:integer;
  i:integer;
  y:Integer;
  type answers=array[1..10,0..16] of byte;
  const otv1:answers=((0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0),(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),(0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));
  const otv2:answers=((0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0),(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),(0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));

  implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   ball:=otv1[1,ComboBox1.itemIndex]+otv1[2,ComboBox2.itemIndex]+
   otv1[3,ComboBox3.itemIndex]+otv1[4,ComboBox4.itemIndex]+
   otv1[5,ComboBox5.itemIndex]+otv1[6,ComboBox6.itemIndex]+
   otv1[7,ComboBox7.itemIndex]+otv1[8,ComboBox8.itemIndex]+
   otv1[9,ComboBox9.itemIndex]+otv1[10,ComboBox10.itemIndex];
   if ball=10
   then label2.Caption:='Правильно ответил'
   else
   label2.Caption:='Ответил не правильно';
end;

  procedure TForm1.ComboBox11Change(Sender: TObject);

begin
y:=0;
i:=ComboBox11.itemIndex;
if i=y
then label3.Caption:='выбран 217';


end;




procedure TForm1.Button2Click(Sender: TObject);
begin
        ball:=otv1[1,ComboBox1.itemIndex]+otv1[2,ComboBox2.itemIndex]+
   otv1[3,ComboBox3.itemIndex]+otv1[4,ComboBox4.itemIndex]+
   otv1[5,ComboBox5.itemIndex]+otv1[6,ComboBox6.itemIndex]+
   otv1[7,ComboBox7.itemIndex]+otv1[8,ComboBox8.itemIndex]+
   otv1[9,ComboBox9.itemIndex]+otv1[10,ComboBox10.itemIndex];
   if ball=10
   then label2.Caption:='Правильно ответил'
   else
   label2.Caption:='Ответил не правильно';
end;


end.
нужно, чтобы при выборе в комбобоксе "команды от руководителя полетов" определенного варианта команды, зависили и правильные варианты в комбобоксах, и если человек правильно выбрал во всех боксах, то выходило сообщение что-то типа "все правильно".
Помогите пожалуйста, не могу разобраться

Последний раз редактировалось lmikle, 04.03.2015 в 01:22.
Ответить с цитированием
  #2  
Старый 04.03.2015, 01:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, видимо что-то типа:
Код:
Case ComboBox11.ItemIndex Of
  0: Button1Click(Sender);
  1: Button2Click(Sender);
end;
Этот как пример. Я бы так не стал делать (имею в виду вообще - статические комбобоксы, 10 вопросов на одном экране, только либо все правильно, либо все неправильно /а если человек ответил правильно на 10 вопросов???/).
Ответить с цитированием
  #3  
Старый 04.03.2015, 03:39
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А ещё можно код подсократить немного
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 ball:= 0;
 for i := 1 to 10 do
  Inc(ball, otv1[i, (FindComponent('ComboBox' + IntToStr(i)) as TComboBox).ItemIndex]);

 with label2 do
  if ball = 10 then Caption:= 'Правильно ответил' else
                    Caption:= 'Ответил не правильно';
end;
Ответить с цитированием
  #4  
Старый 04.03.2015, 09:00
lexe lexe вне форума
Прохожий
 
Регистрация: 03.03.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Суть в том, что человеку нужно обязательно ответить на все вопросы правильно, иначе такие ошибки могут привести к потере ориентирования экипажа в пространстве. Было бы конечно очень хорошо, если бы показывалось где он ответил не правильно, но это пока я думаю отложить(я только разбираюсь).
Идея в том, чтобы в 11 комбобоксе выбиралась "тема", а в остальных вопросы..
Ответить с цитированием
  #5  
Старый 04.03.2015, 18:03
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Может такое и подойдёт, посмотрите пжлст

З.Ы. Терпения хватило лишь на загрузку файл-вопросов в ComboBox-ы, но принцип виден и так, остальное аналогично
Вложения
Тип файла: zip lexe.zip (10.7 Кбайт, 3 просмотров)
Ответить с цитированием
  #6  
Старый 05.03.2015, 10:22
lexe lexe вне форума
Прохожий
 
Регистрация: 03.03.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо большое, кажется это то что нужно))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter