A la pregunta 2:
A la pregunta 2:
Deberías crear una función que rellene un array con los numeros que quieres y que vaya verificando que no exista.
Luego con ese array pones el primer elemento en el Memo.Text, el segundo en el Label1.Caption, el tercero en Label2.Caption y así sucesivamente.
Además de esto, te serviría mucho dividir cada parte en un procedimiento/funcion simple.
Se me ocurre un código como este:
Código Delphi
[-]
type
MiArray = Array[1..6] of integer;
function DameNumeroAleatorio: integer;
begin
Result := Random(38) + 1;
end;
procedure InicializaArray(var A: MiArray);
var
i : integer;
begin
for i := 1 to 6 do
begin
A[i] := 0;
end;
end;
function ExisteEnArray(A: MiArray; Numero: integer): boolean;
var
i : integer;
begin
Result := False;
for i := 1 to 6 do
begin
if A[i] = Numero then
Result := True;
end;
end;
procedure AgregarNumeroAArray(var A: MiArray; Posicion, Numero: integer);
begin
A[Posicion] := Numero;
end;
var
Contador, Posicion, Numero : integer;
A: MiArray;
begin
InicializaArray(A);
for Posicion := 1 to 6 do
begin
Numero := DameNumeroAleatorio;
while (ExisteEnArray(A, Numero)) do
Numero := DameNumeroAleatorio;
AgregarNumeroAArray(A, Posicion, Numero);
end;
for Posicion := 1 to 6 do
MTest.Lines.Add(Format('%.2d', [A[Posicion]]));
end;