Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
wurilo Novato

Registrado: Sexta-Feira, 1 de Outubro de 2010 Mensagens: 28
|
Enviada: Sex Out 15, 2010 11:37 am Assunto: Random |
|
|
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 |
|
 |
rogerbetti Colaborador

Registrado: Quarta-Feira, 2 de Fevereiro de 2005 Mensagens: 1366 Localização: São Paulo/SP
|
Enviada: Sex Out 15, 2010 11:40 am Assunto: |
|
|
isso ocorre pq as mensagens do windows não são atualizadas
coloque um Application.ProcessMessages |
|
Voltar ao Topo |
|
 |
wurilo Novato

Registrado: Sexta-Feira, 1 de Outubro de 2010 Mensagens: 28
|
Enviada: Sex Out 15, 2010 11:55 am Assunto: |
|
|
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 ?
vlw...abços. |
|
Voltar ao Topo |
|
 |
rogerbetti Colaborador

Registrado: Quarta-Feira, 2 de Fevereiro de 2005 Mensagens: 1366 Localização: São Paulo/SP
|
Enviada: Sex Out 15, 2010 11:58 am Assunto: |
|
|
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 |
|
 |
wurilo Novato

Registrado: Sexta-Feira, 1 de Outubro de 2010 Mensagens: 28
|
Enviada: Sex Out 15, 2010 6:01 pm Assunto: |
|
|
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 |
|
 |
|