Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5335 connectés 

 


Dernière réponse
Sujet : [Delphi] - Question d'héritage (pour les pros)
Zero Cool Raaah-la-la, mais oui putain !!! trop con moi ...
 
Au lieu d'hériter KeyPress, j'avais assigné par défaut à FOnKeyPress une procédure que j'avais ajoutée au composant, et qui contenait donc le code ... mais forcément, elle était remplacée par celle que Delphi crée quand on clique sur OnKeyPress dans l'inspecteur d'objets ...
 
Voila voila ... thanks donc.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Zero Cool Raaah-la-la, mais oui putain !!! trop con moi ...
 
Au lieu d'hériter KeyPress, j'avais assigné par défaut à FOnKeyPress une procédure que j'avais ajoutée au composant, et qui contenait donc le code ... mais forcément, elle était remplacée par celle que Delphi crée quand on clique sur OnKeyPress dans l'inspecteur d'objets ...
 
Voila voila ... thanks donc.
JWhy Tu l'as mis ou ton code qui modifie le comportement de OnKeyPress ?
 
si tu as les sources de la VCL et que tu remontes la hierarchie, tu as TEdit->TCustomEdit->TWinControl...  
 
dans TWinControl tu as la procedure qui gere l'appel de l'evenement uTilisateur OnKeyPress:

Citation :


procedure TWinControl.KeyPress(var Key: Word);
begin
  if Assigned(FOnKeyPress) then FOnKeyPress(Self, Key);
end;


 
cette procedure est dynamic et protected donc tu peux l'overrider dans le code de ton composant:
 

Citation :


procedure TZeroCoolEdit.KeyPress(var Key: Word); override
...
procedure TZeroCoolEdit.KeyPress(var Key: Word);
begin
  // Ajoute ici ton code personnalise a faire _avant_ l'appel du gestionnaire d'evenement
  inherited;
  // Ajoute ici ton code personnalise a faire _apres_ l'appel du gestionnaire d'evenement
end;


 
donc comme ca ton code personnalise est effectue et la procedure assignee par l'utilisateur de ton composant le sera aussi...

 

[edit]--Message édité par JWhy--[/edit]

Zero Cool Bon voila, c'est tout con: je fais un composant TEdit customisé, qui a un comportement par défaut pour l'évènement OnKeyPress. MAIS, quand j'instancie mon composant, pas moyen de mettre un inherited dans la procédure qui prend en charge l'évènement, pour déclencher à la fois les actions que j'ai mises par défaut ET celles que j'ajoute dans le code de mon prog. !!
 
Je vois pas comment faire, vu qu'on ne peut pas prévoir à l'avance le nom de la procédure qui va gérer l'évènement, pour chaque composant ...
 
Z'avez une idée, les gourous Delphi ??

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)