ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Random

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
wurilo
Novato
Novato


Registrado: Sexta-Feira, 1 de Outubro de 2010
Mensagens: 28

MensagemEnviada: Sex Out 15, 2010 11:37 am    Assunto: Random Responder com Citação

Bom dia Pessoal...blz?

Tô tentando fazer um criterio de desempate, onde terei que pegar todos os participantes do sistema com pontuação iguais e fazer um desempate entre eles, pensei em fazer assim:
Código:

begin
i:=0;
  while i < 1000 do
    begin
       Randomize;
       c:= random(4);
       //ShowMessage(inttostr(C));
       Label1.Caption:= inttostr(c);
       //Sleep(100);
       end;
       i:= i+1;
    end;
end.


o problema tá que o label não recebe os valores e o programa trava, se colocar o showMessage ele da certo, pensei que fosse por ser muito rapido a execução então coloquei o sleep que tbm não funcionou.

Queria que ficasse trocando o valores no label bem rapido e no fim fosse indo bem devagar, acho que deverei usar o case pra ir diminuindo a velocidade né?

obrigado...té +.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerbetti
Colaborador
Colaborador


Registrado: Quarta-Feira, 2 de Fevereiro de 2005
Mensagens: 1366
Localização: São Paulo/SP

MensagemEnviada: Sex Out 15, 2010 11:40 am    Assunto: Responder com Citação

isso ocorre pq as mensagens do windows não são atualizadas

coloque um Application.ProcessMessages
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wurilo
Novato
Novato


Registrado: Sexta-Feira, 1 de Outubro de 2010
Mensagens: 28

MensagemEnviada: Sex Out 15, 2010 11:55 am    Assunto: Responder com Citação

rogerbetti escreveu:
isso ocorre pq as mensagens do windows não são atualizadas

coloque um Application.ProcessMessages


rogerbetti muito obrigado....

funcionou certinho....

vlw mesmo....

Outra dúvida que eu tenho.. ve c pode me ajudar?

tenho uma tabela com os nomes do participantes da olimpiada e com o campo de pontuação, caso haja participantes com a mesma pontuação utilizarei esse código para fazer o desempate, o problema é que gostaria que fosse automatico, gostaria que se houver empate o sistema pegasse a qtd de participantes empatados e passasse o valor para o Random. Da pra fazer isso Very Happy ?

vlw...abços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerbetti
Colaborador
Colaborador


Registrado: Quarta-Feira, 2 de Fevereiro de 2005
Mensagens: 1366
Localização: São Paulo/SP

MensagemEnviada: Sex Out 15, 2010 11:58 am    Assunto: Responder com Citação

vc pode fazer isso de varias maneiras dependendo do uso do seu sistema

se o seu sistema possui muitos usuarios o ideal seria jogar isso pro banco (uma trigger e uma proc para desempatar) caso contrario coloca uma função no evento OnBeforePost para verificar se já existe
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wurilo
Novato
Novato


Registrado: Sexta-Feira, 1 de Outubro de 2010
Mensagens: 28

MensagemEnviada: Sex Out 15, 2010 6:01 pm    Assunto: Responder com Citação

Obrigado...porém meu sistema não terá tantos usuarios assim.

O que eu tava tentado era criar assim que o form abrisse ele automaticamente criasse uns labels com a quatidade de usuarios empatados, estava tentando assim:
Código:

begin
 edt:= strToInt(Edit1.Text);
  for i:=1 to edt do
    begin
      lbl := TLabel.Create(self);
      lbl.parent := form_Desempate;
      lbl.visible := true;
      lbl.Caption:= DBGrid1.SelectedField.Value [color=red][b]// aki ta o problema não sei como fazer para ele pegar o valor da coluna correta, e assim que este laço virar pegar o valor da proxima linha.[/b][/color]    end;
end;


porém acho que só ta criando um label, ou todos estão na mesma posição, se sim como fazer para ele posicionar em outra posição???
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB