NUMEROS ALEATORIOS DEVEM VIR EM UMA MESMA LINHA NO MEMO

Delphi

Stored Procedures

30/12/2020

Olá pessoal...

Gostaria de saber como faço para retornar todos os 6 numeros aleatorios um ao lado do outro separados por espaço em uma mesma linha no componente memo utilizando a procedure abaixo, pois no momento está retornando um numero por linha.

procedure TForm1.BitBtn12Click(Sender: TObject);
var
   y, i, Rand: integer;
   begin

Randomize;
      for I := 1 to 6 do
      begin
      Rand:=Random(60);
      if i>1 then
        begin
        y:=1;
          repeat
            if Rand = Vetor1[y] then
              rand:= Random(60)+1;
          y:= y+1;
          until (y = I );
        end;
      vetor1[I]:= Rand;
      A[i].Text:= IntToStr(vetor1[i]) ;
      Numeros.Lines.Add(IntToStr(vetor1[I]));
      end;
      Numeros.Lines
      Numeros.Lines.Add('*******');
end;
Gabriel Cristaldo

Gabriel Cristaldo

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

30/12/2020

tente algo assim:
procedure TForm1.BitBtn12Click(Sender: TObject);
var
	i, Rand: integer;
	strNumeros: string;

	// função para verificar se o número já foi sorteado
	function ExisteElemento(Elemento: integer): boolean;
	var j: integer;
	begin
		result := False;
		for j := Low(vetor1) to High(vetor1)
			if vetor1[j] = Elemento then
			begin
				result := True;
				break;
			end;
	end;
begin
 	Randomize;

	FillChar(vetor1, SizeOf(vetor1), 0); // preenche todo o array com 0 (use um número que não pode ser sorteado)
	strNumeros := '';

	for i := 1 to 6 do // preenche os 6 elementos do array
	begin
		repeat
			Rand := 1 + Random(60); // sorteia números de 1 a 60
		until not ExisteElemento(Rand); 
		vetor1[i] := Rand;
		A[i].Text := IntToStr(vetor1[i]);
		strNumeros := strNumeros + A[i].Text;
		if i < 6 then
			strNumeros := strNumeros + ', ';
	end;

	Numeros.Lines.Add(strNumeros);
	Numeros.Lines.Add('*******');
end;
GOSTEI 1
POSTAR