Divisão de código em vários Edits.

Delphi

09/02/2004

Ai galera to apanhando no seguinte problema.

Uso Ado e Acess ok Como base de dados. e Delphi 7.

Tenho seguinte codigo.

01010140314001 este e o codigo do meu cadastro.

So que na hora de digitar preciso colocar varios edits da seguinte forma.

Vai ser digitado da seguinte maneira. Vou colocar colchetes pra simbolizar os edits ok.

Edt1 Edt2 Edt3 Edt4 Edt5
[01] [01] [014] [0314] [001]

deu pra entender e uma inscriçã so, mais nahora de digitar quero cada codigo dividido em edits, pois cada edit seguinifica, exemplo.

01 cidade/ 01 bairro / 014 quadra / 0314 lote / 001 sublote

Valeu espero ter explicado bem..

[b:2fd1f03f92][color=red:2fd1f03f92]Título editado pelo Moderador (AZ) - Removido: ´DIVISÃO DE CODIGO EM VARIOS EDITS.´[/color:2fd1f03f92][/b:2fd1f03f92]


Uoquisala

Uoquisala

Curtidas 0

Respostas

Djjunior

Djjunior

09/02/2004

simples crie uma função tipo

function tab(Sender: TObject; Tamanho:integer)
result := false
if Length(sender.text) = tamanho then
result := True;

e no OnChange do campo coloque:
if tab(sender, 2) then
Perform(WM_NEXTDLGCTL,0,0);


GOSTEI 0
Uoquisala

Uoquisala

09/02/2004

Ai deixa eu ver se entendi.
Tab e o nome da função
Sender.text devo colocar meus edits no lugar dele?
tamanha vai ser o tamanho de cada campo.

E isso?

simples crie uma função tipo function tab(Sender: TObject; Tamanho:integer) result := false if Length(sender.text) = tamanho then result := True; e no OnChange do campo coloque: if tab(sender, 2) then Perform(WM_NEXTDLGCTL,0,0);



GOSTEI 0
Djjunior

Djjunior

09/02/2004

sender vai ser o nome do componente que chamou a função, então ele vai substituir automáticamente o sender.text por edit1.text, em tempo de execução
tamanho sim vai ser o tamanho do campo


GOSTEI 0
Osocram

Osocram

09/02/2004

naum sei se eh isso mas vai lah...
no onchange dos edit vc coloca

if Length(edit.text)=MaxLength then
selectnext(activecontrol, true, true);

Lembre-se de mudar a propriedade do MaxLength d cada edit (isso quer dizer tamanho max)
e deixar ele na seq. do tab order..


GOSTEI 0
Osocram

Osocram

09/02/2004

faltou eu colcoar edit.Maxlength

ficaria assim

procedure TForm1.Edit1Change(Sender: TObject); begin if Length(edit1.text)=edit1.MaxLength then selectnext(activecontrol, true, true); end; procedure TForm1.Edit2Change(Sender: TObject); begin if Length(edit2.text)=edit2.MaxLength then selectnext(activecontrol, true, true); end; procedure TForm1.Edit3Change(Sender: TObject); begin if Length(edit3.text)=edit3.MaxLength then selectnext(activecontrol, true, true); end; procedure TForm1.Edit4Change(Sender: TObject); begin if Length(edit4.text)=edit4.MaxLength then selectnext(activecontrol, true, true); end;

ou vc pode jogar jogar td em uma funcao geral oq seria mais correto.


GOSTEI 0
Nish

Nish

09/02/2004

Não entendi direito a pergunta...
Mas se o que você quer fazer é digitar o código em outros edit´s e depois uni-los para se tornar em apenas um código, faça assim

dbedit_cod_final.text:=edit1.text + edit2.text + edit3.text ........

Depois mande gravar...


GOSTEI 0
POSTAR