Перейти к содержанию
Fire Monkey от А до Я
  • 0

Задача......


sviat9440

Вопрос

Всем добрый вечер. Я разрабатываю программу тестирования, для экзамена. В каждом вопросе по 6 вариантов ответов. Мне нужно, чтобы 6 кнопок, на которых расположены варианты ответов, располагались в случайном порядке. 

 

1*2*3*4*5*6=720 комбинаций постановок. Конечно, можно для каждой прописать свою команду. Есть ли более правильный и легкий способ это сделать?

 

Заранее спасибо.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
var
  Buttons: array[0..5] of TButton;

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
   for i := 0 to 5 do
      Buttons[i] := FindComponent( Format( 'Button%d', [i+1] ) ) as TButton;
   Randomize;
   for i := 1 to 1000 do
   begin
      j := Random( 5 );
      Buttons[j].Position.Y := Buttons[j].Position.Y + Buttons[j+1].Position.Y;
      Buttons[j+1].Position.Y := Buttons[j].Position.Y - Buttons[j+1].Position.Y;
      Buttons[j].Position.Y := Buttons[j].Position.Y - Buttons[j+1].Position.Y;
   end;
end;

RandomButton.zip

Изменено пользователем estra
Ссылка на комментарий
  • 0

Спасибо за наводку. Работает (только не пойму как, потому что чайник:) ). Только вопрос: как оптимизировать этот код по перемешивание 6-ти кнопок в компоненте TGirdPanelLayout (3х2)?

 

Да, можно конечно выстроить все кнопки в одну линию, но на моб. устройствах это будет выглядеть не красиво. А вот расположить их в сетке 3 на 2, другое дело. 

Ссылка на комментарий
  • 0

Я просто показал принцип, а доведение до ума - дело не хитрое. Можно перемешать 6 кнопок как я показал, затем первые 3 отобразить в первом столбце, а последние 3 во втором. При перемешивании действий нужно учесть, что надписи на кнопках должны этим действиям соответствовать, а следовательно придется либо перемешивать кнопки, либо каким то образом менять на них текст.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...