Fórum restringir o loop #411118
01/01/2012
0
Boa tarde a todos,estou precisando de uma ajuda com este codigo, por favor. eu tenho um loop que faço de 1 a 20 digamos. Como faço para tirar cinco numeros de dentro deste loop, vamos dizer que tenho 20 botões de 1 a 20 e quero escluir 5 botões do loop escolhendo quais ex. 3-7-12-13-20. agradeço a ajuda. sucesso a todos obrigado geraldo leal
Geraldo Leal
Curtir tópico
+ 0Posts
01/01/2012
Geraldo Leal
Boa tarde a todos,estou precisando de uma ajuda com este codigo, por favor. eu tenho um loop que faço de 1 a 20 digamos. Como faço para tirar cinco numeros de dentro deste loop, vamos dizer que tenho 20 botões de 1 a 20 e quero escluir 5 botões do loop escolhendo quais ex. 3-7-12-13-20. agradeço a ajuda. sucesso a todos obrigado geraldo leal
Gostei + 0
02/01/2012
Renan Mattos
no index do array.
Exemplo:
valor : array[0..4] of integer = (15,21,48,62,97);
randomize;
Label1.Caption:=inttostr( valor[random(5)] );
abraço.
Gostei + 0
02/01/2012
Geraldo Leal
Renam, obrigado pelo retorno eu entendi o que disse, porem eu tenho 20 botões, o que eu precisava era criar um random aonde eu clicasse em alguns botões ou com o botão direito e conseguisse colocar estes botões tipo enabled igual false, e ai fizesse o random nos outros botões que estivessem habilitado.mais de qualquer forma obrigado sucesso feliz 2012 geraldo leal
Gostei + 0
02/01/2012
Geraldo Leal
Renam, obrigado pelo retorno eu entendi o que disse, porem eu tenho 20 botões, o que eu precisava era criar um random aonde eu clicasse em alguns botões ou com o botão direito e conseguisse colocar estes botões tipo enabled igual false, e ai fizesse o random nos outros botões que estivessem habilitado.mais de qualquer forma obrigado sucesso feliz 2012 geraldo leal
Gostei + 0
02/01/2012
Renan Mattos
Eu fiz o seguinte, criei uma aplicação com 10 botoes que serão escolhidos pelo random e 1 botão no qual dispara a escolha, ao clicar nos botoes eles ficam desabilitados e o random não escolherá mais ele.
ai vai o código:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
ButtonRandom: TButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button0: TButton;
procedure DisableButton(Sender : TObject);
procedure ClearButtons;
function CheckEnableButtons : boolean;
procedure ButtonRandomClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
//Desabilita os botões ao clicar neles, chame isso no evento onclick dos botoes 0 a 9
procedure TForm2.DisableButton(Sender : TObject);
begin
TButton(Sender).Enabled:=False;
end;
//Limpa os caption dos bottões
procedure TForm2.ClearButtons;
var
i : integer;
begin
for i := 0 to 9 do
TButton(FindComponent(Button+inttostr(i))).Caption:=;
end;
//Verifica se ha botoes habilitados
function TForm2.CheckEnableButtons : boolean;
var
i : integer;
R : boolean;
begin
R:=True;
for i := 0 to 9 do
if TButton(FindComponent(Button+inttostr(i))).Enabled=true then R:=False;
Result:=R;
end;
//Escolhe entre os botoes habilitados
procedure TForm2.ButtonRandomClick(Sender: TObject);
var
s: string;
ck : boolean;
begin
Randomize;
repeat
s:=inttostr(random(10));
ck:=CheckEnableButtons;
until (TButton(FindComponent(Button+s)).Enabled=True) or (ck);
ClearButtons;
if not ck then
TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido
end;
end.
abraço!
Gostei + 0
02/01/2012
Geraldo Leal
Renam mais uma vez obrigado pelo seu tempo, tentei fazer aqui, mais está dando um erro de não identificado button veja começou neste codigo e não compilou . var s: string; ck : boolean; begin Randomize; repeat s:=inttostr(random(10)); ck:=CheckEnableButtons; until (TButton(FindComponent(Button+s)).Enabled=True) or (ck); // errro aqui neste local no segundo (Button+s) ClearButtons; if not ck then TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido sucesso geraldo leal
Gostei + 0
02/01/2012
Geraldo Leal
Renam mais uma vez obrigado pelo seu tempo, tentei fazer aqui, mais está dando um erro de não identificado button veja começou neste codigo e não compilou . var s: string; ck : boolean; begin Randomize; repeat s:=inttostr(random(10)); ck:=CheckEnableButtons; until (TButton(FindComponent(Button+s)).Enabled=True) or (ck); // errro aqui neste local no segundo (Button+s) ClearButtons; if not ck then TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido sucesso geraldo leal
Gostei + 0
02/01/2012
Renan Mattos
O codigo esta sem as aspas simples de string.
//Desabilita os botões ao clicar neles, chame isso no evento onclick dos botoes 0 a 9
procedure TForm2.DisableButton(Sender : TObject);
begin
TButton(Sender).Enabled:=False;
end;
//Limpa os caption dos bottões
procedure TForm2.ClearButtons;
var
i : integer;
begin
for i := 0 to 9 do
TButton(FindComponent(Button+inttostr(i))).Caption:=;
end;
//Verifica se ha botoes habilitados
function TForm2.CheckEnableButtons : boolean;
var
i : integer;
R : boolean;
begin
R:=True;
for i := 0 to 9 do
if TButton(FindComponent(Button+inttostr(i))).Enabled=true then R:=False;
Result:=R;
end;
//Escolhe entre os botoes habilitados
procedure TForm2.ButtonRandomClick(Sender: TObject);
var
s: string;
ck : boolean;
begin
Randomize;
repeat
s:=inttostr(random(10));
ck:=CheckEnableButtons;
until (TButton(FindComponent(Button+s)).Enabled=True) or (ck);
ClearButtons;
if not ck then
TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido
end;
{
eu chamei os botoes de Button0, Button1, Button2,...
voce pode mudar o nome dos botoes por exemplo para botao0, botao1, botao2, porem teria que mudar
o codigo FindComponent(Button para FindComponent(Botao
}
Gostei + 0
02/01/2012
Renan Mattos
O codigo esta sem as aspas simples de string.
//Desabilita os botões ao clicar neles, chame isso no evento onclick dos botoes 0 a 9
procedure TForm2.DisableButton(Sender : TObject);
begin
TButton(Sender).Enabled:=False;
end;
//Limpa os caption dos bottões
procedure TForm2.ClearButtons;
var
i : integer;
begin
for i := 0 to 9 do
TButton(FindComponent(Button+inttostr(i))).Caption:=;
end;
//Verifica se ha botoes habilitados
function TForm2.CheckEnableButtons : boolean;
var
i : integer;
R : boolean;
begin
R:=True;
for i := 0 to 9 do
if TButton(FindComponent(Button+inttostr(i))).Enabled=true then R:=False;
Result:=R;
end;
//Escolhe entre os botoes habilitados
procedure TForm2.ButtonRandomClick(Sender: TObject);
var
s: string;
ck : boolean;
begin
Randomize;
repeat
s:=inttostr(random(10));
ck:=CheckEnableButtons;
until (TButton(FindComponent(Button+s)).Enabled=True) or (ck);
ClearButtons;
if not ck then
TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido
end;
{
eu chamei os botoes de Button0, Button1, Button2,...
voce pode mudar o nome dos botoes por exemplo para botao0, botao1, botao2, porem teria que mudar
o codigo FindComponent(Button para FindComponent(Botao
}
Gostei + 0
02/01/2012
Renan Mattos
//Desabilita os botões ao clicar neles, chame isso no evento onclick dos botoes 0 a 9
procedure TForm2.DisableButton(Sender : TObject);
begin
TButton(Sender).Enabled:=False;
end;
//Limpa os caption dos bottões
procedure TForm2.ClearButtons;
var
i : integer;
begin
for i := 0 to 9 do
TButton(FindComponent(Button+inttostr(i))).Caption:=;
end;
//Verifica se ha botoes habilitados
function TForm2.CheckEnableButtons : boolean;
var
i : integer;
R : boolean;
begin
R:=True;
for i := 0 to 9 do
if TButton(FindComponent(Button+inttostr(i))).Enabled=true then R:=False;
Result:=R;
end;
//Escolhe entre os botoes habilitados
procedure TForm2.ButtonRandomClick(Sender: TObject);
var
s: string;
ck : boolean;
begin
Randomize;
repeat
s:=inttostr(random(10));
ck:=CheckEnableButtons;
until (TButton(FindComponent(Button+s)).Enabled=True) or (ck);
ClearButtons;
if not ck then
TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido
end;
{
eu chamei os botoes de Button0, Button1, Button2,...
voce pode mudar o nome dos botoes por exemplo para botao0, botao1, botao2, porem teria que mudar
o codigo FindComponent(Button para FindComponent(Botao
}
Gostei + 0
02/01/2012
Renan Mattos
Abraço!
Gostei + 0
02/01/2012
Geraldo Leal
renam aonde está parando , tentei colocar as aspas, mais quando coloco ele diz imcopativel string e integer TButton(FindComponent(Button+s)).Caption:=1; //escreve 1 no caption do botão escolhido é nesta linha que está parando. obrigado - coloque no codigo fora e cole aqui que aceita as aspas geraldo
Gostei + 0
03/01/2012
Renan Mattos
www.megaupload.com/?d=K8DT8M8P
clica em download comum
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)