Fórum especie de decrip..!!! #186394

06/10/2003

0

Bem pessoALL,
A duvida é a seguinte;
No formulario eu teria 9 botoes com as primeiras letras do alfabeto..
A,B,C,D,..... e dois edit´s
ao clicar no botão ´A´ apareceria a letra no 1º edit,já no 2º edit ele
colocaria o numero ´1´... a assim subseguentemente...


[]´s
Junior


Junior#

Junior#

Responder

Posts

06/10/2003

Beppe

Faça o seguinte:

Selecione todos os botões(shift+click, ou click+arraste), vá para a aba Events no Object Inspector, e dê dois cliques em OnClick. Coloque este código no método.

Edit1.Text := TButton(Sender).Caption;
Edit2.Text := IntToStr(Ord(TButton(Sender).Caption[1]) - Ord(´A´) + 1);



Responder

Gostei + 0

06/10/2003

Junior#

valeu ataliba, ,..mas tem um porem...
nao entendi muito bem...e que sou novato entende..!!!!
tem como voce explicar o codigo..

[]´s
Junior


Responder

Gostei + 0

06/10/2003

Beppe

No problem...

O parâmetro [b:9106842bbd]Sender [/b:9106842bbd]é o componento que disparou o evento, no caso, um botão. Sender é do tipo TObject, e não tem a propriedade Caption, então faço uma [b:9106842bbd]typecast[/b:9106842bbd](maneira de afirmar o tipo de tempo de execução do objeto, sem realmente verificar se o objeto é deste tipo) para TButton, e pego o Caption deste.

Edit1.Text := TButton(Sender).Caption; 


Aqui, um pouco de aritmética: pego a primeira letra do caption e extrai o valor ordinal(função Ord). Como a letra ´A´ tem valor ordinal 65, eu subtraio Ord(´A´) e adiciono 1.

Ord(´A´) = 65
Ord(´B´) = 66
Ord(´A´) - Ord(´A´) + 1 = 1
Ord(´B´) - Ord(´A´) + 1 = 2

Edit2.Text := IntToStr(Ord(TButton(Sender).Caption[1]) - Ord(´A´) + 1);

C precisa D + ?, soh chamar :D .


Responder

Gostei + 0

06/10/2003

Junior#

valeu pela dica, mas agora necessito do seguinte...
quero que ao digitar a letra ´A´...depois a letra ´B´...ele nao suma
com nenhuma delas, ou seja que fique assim do edit 1..
Edit 1
ABCD....

Edit2
1234...

[]´s
junior


Responder

Gostei + 0

06/10/2003

Beppe

Edit1.Text := Edit1.Text + TButton(Sender).Caption;
Edit2.Text := Edit2.Text + IntToStr(Ord(TButton(Sender).Caption[1]) - Ord(´A´) + 1);

Ataliba.


Responder

Gostei + 0

06/10/2003

Junior#

Seguinte..

como faço para colocar valores predefinidos nas letras

a = 4
b = 6
c = 8
e = 1
m = 5
n = 3
o = 9.....
Ou seja.. no edit 1 aparecera ´ abcemn´
no edit 2 aparecera ´ 468153´


[]´s
junior


Responder

Gostei + 0

06/10/2003

Ljr

Coloque na propriedade tag de cada botao o valor desejado.
Ex.:
Button1.Tag:= 1
Button1.Tag:= 5
Button1.Tag:= 100
...

Depois siga os passos que nosso cologa Ataliba disse, mas altere o codigo da ultima resposta enviada por ele, por esse codigo:

Edit1.Text := Edit1.Text + TButton(Sender).Caption;
Edit2.Text := Edit2.Text + IntToStr(TButton(Sender).Tag);



Responder

Gostei + 0

06/10/2003

Junior#

valeu..
vc´s sao de mais.,..
[]´s
junior


Responder

Gostei + 0

08/10/2003

Junior#

PessoAAL,

Tenho as seguintes letras com valores correnpondentes para
cada uma delas, ´A´ ´B´ ´C´
´6´ ´2´´1´


isso vai se transformar num valor do tipo 12,536,23, mas existe um porem
quando a letra ´A´ esta no primeiro digito ela tem valor ´6´, já se estiver no 2º digito
ela tem valor ´4´, estando no 3º digito tem valor 6 novamente, quando na 4ª ela volta a ter valor ´4´
ou seja nas
ficaria assim

1 2 3 4 5 - casas
A A A A A - letras
6 4 6 4 6 - decrip

isso vale para todas as outras letras....
por favor, como devo proceder.....

grato

[]´s
junior


Responder

Gostei + 0

08/10/2003

Beppe

crie uma matrix, que dado uma letra e um estado, retorne um valor:

const
MatrizValor: array[´A´..´Z´, Boolean] of Integer = (
6, 4, {letra A}
2, ..., {letra B}
1, ... {letra C}
);

Ex: Letra [i:7b44638b3b]Uma_Letra[/i:7b44638b3b] na posição [i:7b44638b3b]Pos[/i:7b44638b3b]: MatrizValor[Uma_Letra, Odd(Pos)];

Ataliba.


Responder

Gostei + 0

08/10/2003

Junior#

não entendi muito o exemplo, pode me explicar melhor,....
obrigado...desculpe o transtorno..

[]´s
junior


Responder

Gostei + 0

08/10/2003

Junior#

ataliba, ou alguem dop forum da uma força ai...
[]´
junior


Responder

Gostei + 0

08/10/2003

Junior#

Quero jogar no mesmo edit..

1 2 3 4 6 - casa
A A A A A -button ( tenho que ter somente um botão, ´A´), que me
6 4 6 4 6 - decrip ( retorne esses valores no edit, mas que seja dessa
forma..



64646
tipo seis mil quatrocentos e sessenta reais..!!



voce entendeu..?

[]´s
junior


Responder

Gostei + 0

08/10/2003

Beppe

Pegue aquela matriz que passei, e cada vez que você pressionar o botão ´A´, e faça

Impar := not Impar;
Edit1.Text := Edit1.Text + IntToStr(MatrizValor[´A´, Impar]);


Inicie Impar como False.

Ataliba


Responder

Gostei + 0

08/10/2003

Junior#

Desculpe-me
mas e justamente aquele matriz que nao entendi muito....sou leigo mesmo...
agora juntou essa outra função.....to confuso cara....rs

pode me dar uam explicação...
olha esse ai e meu email
naojunior@bol.com.br
valeu a atenção
[]´s
junior


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar