Chamar procedure em outro form

Delphi

17/10/2003

Sou iniciante em Delphi e preciso de ajuda. Tenho vários forms que podem ter a mesma programação. Por exemplo:

Form 1 com o Edit1
Form 2 com o Edit1
Form 3 com o Edit1

criei uma procedure na unit 1 (do form1) que, por exemplo, dá o foco ao edit1. Gostaria de saber como eu faço para chamar a procedure nos outros forms para então o edit 1 do respctivo form receba o foco.

O que eu consegui fazer é, em outro form, ao chamar a procedure, o edit do form que tem a procedure receber o foco. Se eu chamo a procedure no form 3, o edit que recebe o foco é o do form1 (onde está a procedure), e eu NÂO quero que isso aconteça. Quero que quando chame a procedure o edit 1 do form respectivo receba o foco. Não estou conseguindo fazer isso.

Por favor, me ajudem.
Obrigado.


Alvarosou

Alvarosou

Curtidas 0

Respostas

M@rk Knopfler

M@rk Knopfler

17/10/2003

A sua procedure poderia receber um parâmetro do tipo TEdit, indicando qual caixa vai receber o foco. Como vc a fez na Unit1, ela ficaria assim:

procedure TForm1.AtivaCaixa(QualCaixa: TEdit);
begin
QualCaixa.SetFocus;
end;

Agora suponha um clique em um botão do Form2:

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.AtivaCaixa(Form2.Edit1); // Ativar o Edit do Form2
end;


GOSTEI 0
Rômulo Barros

Rômulo Barros

17/10/2003

procedure Form1.colocarFocus;
Var
X:Byte;
Begin
For x:=0 to self.componentCount -1 Do
Begin
if(component[x] is tdbedit)then
Begin
(Tdbedit(component[x]).setfocus);
end;
End;
End;

// Não testei. tenho dúvidas se o correto é [color=red:a126ddbd3f]componentcount() [/color:a126ddbd3f]ou [color=red:a126ddbd3f]componentscount();[/color:a126ddbd3f]

//Só funcionará para o primeiro edit de cada form q vc colocar primeiro...


GOSTEI 0
Marcelo.c

Marcelo.c

17/10/2003

[quote:d39ad8d523=´Undeclared Identifier´]// Não testei. tenho dúvidas se o correto é [color=red:d39ad8d523]componentcount() [/color:d39ad8d523]ou [color=red:d39ad8d523]componentscount();[/color:d39ad8d523][/quote:d39ad8d523]ComponentCount
Component[b:d39ad8d523]s[/b:d39ad8d523][x]


GOSTEI 0
Rômulo Barros

Rômulo Barros

17/10/2003

Para de entrar e ficar criticando o código dos outros. Ao invés de postar os meus erros, pq vc num respondeu a dúvida do nosso amigo?? Será q vc num sabia e ficou com inveja??? é... com certeza estou mais certo do que vc, uma vez que o fórum foi feito para tirar dúvidas, e não para ficar recebendo críticas inúteis, já que o que escrevi para o nosso amigo poderia ser resolvido rapidamento com o CodeInseght(Ctrl + Barra de espaço). No seu caso, acho q num ajudou muito não... Agora eu já sei pq vc possui tantas mensagens... só fica botando besteiras..... :P


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

17/10/2003

[quote:174d707803=´Undeclared Identifier´]Para de entrar e ficar criticando o código dos outros. Ao invés de postar os meus erros, pq vc num respondeu a dúvida do nosso amigo?? Será q vc num sabia e ficou com inveja??? é... com certeza estou mais certo do que vc, uma vez que o fórum foi feito para tirar dúvidas, e não para ficar recebendo críticas inúteis, já que o que escrevi para o nosso amigo poderia ser resolvido rapidamento com o CodeInseght(Ctrl + Barra de espaço). No seu caso, acho q num ajudou muito não... Agora eu já sei pq vc possui tantas mensagens... só fica botando besteiras..... :P[/quote:174d707803]
Calma Rômulo,

Você é um grande colaborador do fórum e ninguém tem dúvida quanto a isso, bem como, o Marcelo.C também. No que eu percebi na mensagem do Marcelo, ele não teve a intenção de lhe expor, apenas retificou a deixa que você mesmo já havia exposto, nesta expressão:
[quote:174d707803=´Undeclared Identifier´]
// Não testei. tenho dúvidas se o correto é componentcount() ou componentscount();
[/quote:174d707803]


GOSTEI 0
POSTAR