Habbo Server
Olá, ja é registrado?nParabéns, você é um membro do maior forum Habbo do Brasil!nnNÃO PRECISA CONFIRMAR EMAILnNão é registrado?nRegistre-se e descubra o maior forum Habbo do Brasil!nnHTA Forum - O maior forum de Habbo do Brasil

Participe do fórum, é rápido e fácil

Habbo Server
Olá, ja é registrado?nParabéns, você é um membro do maior forum Habbo do Brasil!nnNÃO PRECISA CONFIRMAR EMAILnNão é registrado?nRegistre-se e descubra o maior forum Habbo do Brasil!nnHTA Forum - O maior forum de Habbo do Brasil
Habbo Server
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
Jay
Jay
Zodíaco : Peixes
Posts : 20980

Idade : 2023

Sexo : Masculino

Local : 1

Criando Gerador de Codigos Profissional Empty Criando Gerador de Codigos Profissional

15/7/2010, 18:42
Antes de qualquer coisa eu sei que já tem outros tópicos sobre geradores de codigos, mas eles são básicos, esse é um pouco mais avançado. Tava sem nada pra fazer então eu fiz esse gerador.

Preview:


Primeiramente vamos precisar de: 2 GroupBox (opcional), 3 CheckBox, 2 Label, 2 Edit, 2 Button, 1 XPManifest (opcional).

1° Coloque os 3 CheckBox dentro do GroupBox1, e o resto (menos o XPManifest) no GroupBox2.

2° Renomeie (Text ou Caption não o Name) os componentes (são apenas sugestões)
Código:
CheckBox1 para "Letras"
CheckBox2 para "Números"
CheckBox3 para "Especiais"
Label1 para "Codigo"
Label2 para "Quantidade de dígitos"
Edit1 para "Clique em Gerar"
Edit2 para "10" ou qualquer outro número
Button1 para "Gerar"
Button2 para "Copiar"
Dica: Coloque um & no início dos CheckBox e Button para fazer um atalho (ex: &Gerar, ao apertar G o botão será clicado).

3° Coloque True no Checked do CheckBox1 e 2

Agora vamos ao que interessa =D

Deixe o OnClick do Button1 assim:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
I,Max : Integer;
S : String;
begin
if Edit2.Text <> '' then
begin
if (CheckBox1.Checked = True) or (CheckBox2.Checked = True) or (CheckBox3.Checked = True) then
begin
Randomize;
Max:=StrToInt(Edit2.Text);
Edit1.Clear;
if CheckBox1.Checked = True then S := S+'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if CheckBox2.Checked = True then S := S+'0123456789';
if CheckBox3.Checked = True then S := S+'!@#$%¨&*()[]{}<>/?';
for I := 1 to Max do Edit1.Text := Edit1.Text+S[Random(Length(S))+1];
end
else
begin
ShowMessage('Selecione pelo menos um tipo de caractere!');
end;
end
else
begin
ShowMessage('Coloque a quantidade de dígitos a serem gerados');
end;
end;
Você pode alterar o ShowMessage para MessageBoxA

Deixe o OnClick do Button2 assim:
Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.SelectAll;
Edit1.CopyToClipboard;
end;
Deixe o OnKeyPress do Edit2 assim:
Código:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, #13]) then
begin
Key := #0;
ShowMessage('Somente números são permitidos!');
end;
if Key = #13 then Button1.Click;
end;
Agora vamos as explicações =D
No primeiro Código verifica se o Edit2 não está vazio, senão retorna uma mensagem de erro.
Logo após verifica se pelo menos um CheckBox está marcado, senão retorna outra mensagem de erro.
Se não retornar erro o código continua. Então adiciona os caracteres na string de acordo com os CheckBox marcados e então gera uma senha no Edit1 baseado na String com a quantidade de dígitos indicado no Edit2

O segundo Code apenas seleciona o texto do Edit1 e copia para a área de transferência

O terceiro Código proibe que digite um caractere além de números no Edit2 retornando um erro. E se apertar Enter a senha será gerada.

EXTRA
Para determinar um número mínimo e máximo de dígitos faça assim:
Primeiro substitua a linha if Edit2.Text <> '' then para:
Código:
if (Edit2.Text <> '') and (StrToInt(Edit2.Text) >= StrToInt('5')) and (StrToInt(Edit2.Text) <= StrToInt('100')) then
Também substitua essa linha ShowMessage('Coloque a quantidade de dígitos a serem gerados'); por:
Código:
if Edit2.Text = '' then
ShowMessage('Coloque a quantidade de dígitos a serem gerados');
if StrToInt(Edit2.Text) < StrToInt('5') then
ShowMessage('Número mínimo de dígitos: 5');
if StrToInt(Edit2.Text) > StrToInt('100') then
ShowMessage('Número máximo de dígitos: 100');


Creditos: Phoenix


Última edição por J-Z em 16/7/2010, 13:13, editado 1 vez(es)
avatar
topeiramogo
Zodíaco : Touro
Cavalo
Posts : 10

Idade : 34

Sexo : Masculino

Local : na Puta que paril

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

16/7/2010, 12:28
J-Z escreveu:
lory998 escreveu:entendi ndndnd
10% de aviso para lory998 por flood e creditos adicionados no topico.
Créditos Pra?Se Ngm ajudo no tuto pq creditos?
Jay
Jay
Zodíaco : Peixes
Posts : 20980

Idade : 2023

Sexo : Masculino

Local : 1

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

16/7/2010, 12:44
topeiramogo escreveu:
J-Z escreveu:
lory998 escreveu:entendi ndndnd
10% de aviso para lory998 por flood e creditos adicionados no topico.
Créditos Pra?Se Ngm ajudo no tuto pq creditos?
Ajudo sim, eu vi um tutorial identico que outra pessoa crio em outro topico de outro forum, e ele criou antes de você, se você editar novamente os creditos o topico sera removido.
avatar
topeiramogo
Zodíaco : Touro
Cavalo
Posts : 10

Idade : 34

Sexo : Masculino

Local : na Puta que paril

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

16/7/2010, 13:10
J-Z escreveu:
topeiramogo escreveu:
J-Z escreveu:
lory998 escreveu:entendi ndndnd
10% de aviso para lory998 por flood e creditos adicionados no topico.
Créditos Pra?Se Ngm ajudo no tuto pq creditos?
Ajudo sim, eu vi um tutorial identico que outra pessoa crio em outro topico de outro forum, e ele criou antes de você, se você editar novamente os creditos o topico sera removido.
Então vo remover essa porcaria dando creditos prum cara que n fez nada ele n é o outro cara la da WC ¬¬
Hank
Hank
Zodíaco : Touro
Gato
Posts : 597

Idade : 25

Sexo : Masculino

Local : \o/

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

11/8/2010, 00:13
entendi tudo ¬_¬ (zoa*)
Jay
Jay
Zodíaco : Peixes
Posts : 20980

Idade : 2023

Sexo : Masculino

Local : 1

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

11/8/2010, 15:14
Taka\o\lol/o/ escreveu:entendi tudo ¬_¬ (zoa*)
Entendeu ou não?
Se não entedeu poste sua duvida.
OBS: Eu entendi, tenho Delphi.
Hank
Hank
Zodíaco : Touro
Gato
Posts : 597

Idade : 25

Sexo : Masculino

Local : \o/

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

11/8/2010, 15:27
serio muitos codigos tipo quando eu fasso tem tanto codigo que eu esqueço
-------------------
diboua aprender a fazer um flooder zozinho é mais facil '-'
Conteúdo patrocinado

Criando Gerador de Codigos Profissional Empty Re: Criando Gerador de Codigos Profissional

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos