Fórum Dúvida sobre alterar a procedure exec. d 1 evento em RunTime #320274
28/04/2006
0
Pessoal, é o seguinte:
Eu quero tentar escrever uma procedure que ao ser chamada faça um loop por todos os componentes do Form. Para cada edit encontrado a procedure deve setar o evento OnChange para uma procedure que eu tenho criada.
O problema é que alguns desses edits já possuem algum código para o evento OnChange. E para esses edits eu queria que o OnChange executasse o código que já existe lá e depois rodasse a ´MinhaProcedure´. Isso é possível?
t+!
Eu quero tentar escrever uma procedure que ao ser chamada faça um loop por todos os componentes do Form. Para cada edit encontrado a procedure deve setar o evento OnChange para uma procedure que eu tenho criada.
procedure TForm1.MinhaProcedure(Sender: TObject); begin //>>Códigos end; procedure TForm1.SetarOnChange; var i:integer; begin for i:=0 to ComponentCount - 1 do if Components[i] is TCustomEdit then TCustomEdit(Components[i]).OnChange := MinhaProcedure; end;
O problema é que alguns desses edits já possuem algum código para o evento OnChange. E para esses edits eu queria que o OnChange executasse o código que já existe lá e depois rodasse a ´MinhaProcedure´. Isso é possível?
t+!
Delphi32
Curtir tópico
+ 0
Responder
Posts
29/04/2006
Marco Salles
A gente quando responde uma pergunta assim , geralmente recebe em troca o seguinte:
Não era bem isso que eu queria , Voce não entendeu , mas eu preciso assim etc.. Emfim
***********************************************************
Tente isso
Nos edits que ja tem o evento codigo no evento OnChange , voce deve apos o codigo que ja existe , chamar a procedure
Para os demais Edits que não tem codigo No evento Onchange , voce pode alterar sua[b:b0a04ac32c] propriedade Tag [/b:b0a04ac32c](No Objecto Inspector ) Para 1..
Assim voce deve apenas mudar as instruçoes em Setar Change
[b:b0a04ac32c]Com isso voce so atribui o novo procedimento para os edits que lhe interresam e os demais ficam com os manipuladores inalterados[/b:b0a04ac32c]
Não era bem isso que eu queria , Voce não entendeu , mas eu preciso assim etc.. Emfim
***********************************************************
Tente isso
Nos edits que ja tem o evento codigo no evento OnChange , voce deve apos o codigo que ja existe , chamar a procedure
procedure TForm1.Edit1Change(Sender: TObject);
begin
CodigosQeuJaExistem
-->>Chamar MinhaProcedure
end;
Para os demais Edits que não tem codigo No evento Onchange , voce pode alterar sua[b:b0a04ac32c] propriedade Tag [/b:b0a04ac32c](No Objecto Inspector ) Para 1..
Assim voce deve apenas mudar as instruçoes em Setar Change
procedure TForm1.SetarOnChange;
var i:integer;
begin
for i:=0 to ComponentCount - 1 do
if Components[i] is TCustomEdit then
if Tedit(Components[i]).Tag = 1 Then
TCustomEdit(Components[i]).OnChange := MinhaProcedure;
end;
[b:b0a04ac32c]Com isso voce so atribui o novo procedimento para os edits que lhe interresam e os demais ficam com os manipuladores inalterados[/b:b0a04ac32c]
Responder
Gostei + 0
29/04/2006
Marco Salles
P:S ...
Nao estou falando do teor da sua pergunta , nen do grau de dificuldade . Ficou um tanto pejorativo o termo ´Pergunta assim´. O que quis dizer foi que é uma pergunta que da margens a interpretaçoes e estas interpretaçoes eu nunca acerto :lol:
A gente quando responde uma pergunta assim , geralmente recebe em troca o seguinte:
Nao estou falando do teor da sua pergunta , nen do grau de dificuldade . Ficou um tanto pejorativo o termo ´Pergunta assim´. O que quis dizer foi que é uma pergunta que da margens a interpretaçoes e estas interpretaçoes eu nunca acerto :lol:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)