Показать сообщение отдельно
  #8  
Старый 10.02.2015, 13:16
Deman1986 Deman1986 вне форума
Прохожий
 
Регистрация: 03.11.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Оригинально конечно получилось. Протестил спасибо большое. Вот так набрал в дельфи.
Код:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

function IntToRome(Value : Integer) : String;
const
  Romes : Array [1..9] Of String =
    ('I','II','III','IV','V','VI','VII','VIII','IX');
begin
  If Not (Value In [1..9])
    Then Raise Exception.Create('значение должно быть в диапазоне 1..9.');
  Result := Romes[Value];
end;

procedure GetNumbers(var A : Array of Integer);
var
  I, Idx : Integer;
  B : Array [0..8] Of Integer;
begin
  If (Length(A) > 9) Or (Length(A) < 1)
    Then Raise Exception.Create('входной массив дорлжен иметь длину 1 to 9. ');

  // инициализация временного массива
  For I := 0 to 8 Do B[i] := 0;
 
  // генерация листа
  For I := 1 to 9 Do
    Begin
      Idx := Random(9);
      While B[Idx] <> 0 Do
        If Idx = 8 Then Idx := 0 Else Inc(Idx);
      B[Idx] := I;
    End;
 
  // копирование результатат в выходной массив
  For I := Low(A) To High(A) Do A[i] := B[i];
end;

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
      S := S + IntToRome(A[i]);
      If I < High(A) Then S := S + ', ';
    End;
  ShowMessage(S);
end;

end.
А как сделать словестную форму и цвет?
Ответить с цитированием