 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
amufa Novato

Registrado: Segunda-Feira, 15 de Agosto de 2011 Mensagens: 46
|
Enviada: Seg Nov 09, 2015 12:57 pm Assunto: Random com memos - RESOLVIDO |
|
|
Obrigado a todos pelas respostas.....
Olá pessoal,
Tenho um problema para resolver :
tenho um memo com vários nomes e preciso randomizar esses nomes em outros memos. exemplo:
memo1 lista com 27 nomes:
memo2 receberá 9 nomes ( randomizados )
memo3 receberá 9 nomes (randomizados)
memo4 receberá 9 nomes (randomizados )
desde já agradeço..
Editado pela última vez por amufa em Ter Nov 24, 2015 6:07 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Nov 09, 2015 1:20 pm Assunto: |
|
|
Boa tarde,
Acredito que uma alternativa seria copiar a lista de nomes do Memo1 para uma TStringList, executar o Random para obter 1 nome, adiciona-lo no outro Memo e exclui-lo da TStringList, e depois repetir o processo a partir do Random até chegar ao último nome.
Espero que ajude.
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos-residencial-casa |
|
| Voltar ao Topo |
|
 |
matteusin Aprendiz


Registrado: Terça-Feira, 28 de Fevereiro de 2012 Mensagens: 156
|
Enviada: Seg Nov 09, 2015 2:26 pm Assunto: |
|
|
Boa tarde!
Fiz aqui um projeto simples, veja se é isso!
| Código: | function IntInArray(Arr: Array Of Integer; Value: Integer): Boolean;
var i: integer;
begin
Result:= False;
for i:= 0 to Length(Arr) - 1 do
if Arr[i] = Value then
Result:= True;
end;
procedure TForm1.btnGerarClick(Sender: TObject);
var i, Temp: Integer;
LstNegra: Array Of Integer;
begin
mmPrimeiro.Clear;
mmSegundo.Clear;
mmTerceiro.Clear;
SetLength(LstNegra, 27); // LstNegra usei para armazenar todos os numeros já usados, para evitar repetir.
Temp:= Random(28);
// Preenche o primeiro Memo com 9 nomes
for i:= 0 to 8 do
begin
While IntInArray(LstNegra, Temp) do // Essa função verifica se o nome já não está na lista negra
Temp:= Random(28);
mmPrimeiro.Lines.Add(mmListaOriginal.Lines.Strings[Temp]);
LstNegra[i]:= Temp;
mmPrimeiro.Text:= Trim(mmPrimeiro.Text);
end;
// Preenche o segundo Memo com 9 nomes
for i:= 0 to 8 do
begin
While IntInArray(LstNegra, Temp) do // Essa função verifica se o nome já não está na lista negra
Temp:= Random(28);
mmSegundo.Lines.Add(mmListaOriginal.Lines.Strings[Temp]);
LstNegra[i+9]:= Temp;
mmSegundo.Text:= Trim(mmSegundo.Text);
end;
// Preenche o terceiro Memo com 9 nomes
for i:= 0 to 8 do
begin
While IntInArray(LstNegra, Temp) do // Essa função verifica se o nome já não está na lista negra
Temp:= Random(28);
mmTerceiro.Lines.Add(mmListaOriginal.Lines.Strings[Temp]);
LstNegra[i+18]:= Temp;
mmTerceiro.Text:= Trim(mmTerceiro.Text);
end;
end; |
Segue o download dos fontes:[url] http://www.4shared.com/rar/HxBnv3oDce/Nomes_Randomizados.html?[/url]
Boa sorte! _________________ Visite meu blog: http://devsistem.blogspot.com.br |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|