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

я специально вынес конвертацию в римские цифры в отдельную функцию.
По аналогии задается любой другой вид. Фактически, у тебя в сгенерированном массиве индексы элементов массива значений. Т.е. собственно, надо просто брать элемент из нужного массива.

Пусть у нас есть RadioGroup c 2 вариантами - Римские цифры (0) и Слова (1).
тогда:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
N, I : Integer;
  A : Array Of Integer;
    S : String;
begin
Randomize;
  N := Random(9)+1; // Random числа 1..9
    SetLength(A,N); // выделение памяти массиву
      GetNumbers(A);
// Отображение результата
S := '';
  For I := Low(A) To High(A) Do
    Begin
      Case RadioGroup1.ItemIndex Of // не помню как точно св-во нвзывается
        0 : S := S + IntToRome(A[i]);
        1 : S := S + IntToWord(A[i]);
        Else Raise Exception.Create('Unknown transformation.');
      End;
      If I < High(A) Then S := S + ', ';
    End;
  ShowMessage(S);
end;

Функцию IntToWord сам напишешь по аналогии...
Ответить с цитированием