Accueil > Forum > > > > override et Inherited d' une fonction avec resultat.
override et Inherited d' une fonction avec resultat.
mercredi 23 avril 2008 à 15:36:52 |
override et Inherited d' une fonction avec resultat.

MAURICIO
|
Salut à tous, je fais le override d' une fonction comme ça dans un des mes compos: protected procedure FontionXYZ: Boolean; override; j' aimerai faire cela :: procedure FontionXYZ: Boolean; begin RESULT := Inherited FontionXYZ; if not RESULT then bla bla bla ...; end; Mais RESULT est toujours à true  même lorsque la fonction originelle renvoie false. Alors vrai bug ou je dois écrire cela d' une autre façon? Pour l'instant j' ai fait un copier coller du code dans la fonction héritée mais ce serait plus correct d' utiliser Inherited ... A+
|
|
mercredi 23 avril 2008 à 15:49:56 |
Re : override et Inherited d' une fonction avec resultat.

florenth
|
Salut !
A mon avis, ce serait plus simple si tu nous faisait un copier-coller de ta vraie fonction car ça m'étonnerait que ton code là compile (tu nous as pondu une procédure avec résultat ^^ et pas que ça d'ailleurs)
Mets donc le code de la procédure de l'ancêtre et celle qui ne fonctionne pas pour qu'on regarde ça de plus près.
++
|
|
mercredi 23 avril 2008 à 15:58:20 |
Re : override et Inherited d' une fonction avec resultat.

MAURICIO
|
Bem si ça compile ^^ Il s' agit de mon dernier compo posté hier :
protected function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function TcyDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; begin // doesn' t work because returns always true : // RESULT := Inherited DoMouseWheelDown(Shift, MousePos);
RESULT := false;
if Assigned(OnMouseWheelDown) then OnMouseWheelDown(self, Shift, MousePos, RESULT);
if not RESULT // Not handled then cyMouseWheelDown(self, Shift, MousePos, RESULT); end;
A+
|
|
mercredi 23 avril 2008 à 16:06:32 |
Re : override et Inherited d' une fonction avec resultat.

florenth
|
A en voir ton code, tu passes Result dans la procédure OnMouseWheelDown qui modifie la valeur de Result (c'est un paramètre var).
Donc il se peut que la fonction ancêtre retourne False, mais que OnMouseWheelDown() modifie cette valeur en True, donc ton code d'en dessous n'est jamais exécuté !
[ou alors j'ai pas tout compris ce que tu souhaites faire]
|
|
mercredi 23 avril 2008 à 16:11:53 |
Re : override et Inherited d' une fonction avec resultat.

MAURICIO
|
Au lieu de faire cela: RESULT := false;
if Assigned(OnMouseWheelDown) then OnMouseWheelDown(self, Shift, MousePos, RESULT);
if not RESULT // Not handled then cyMouseWheelDown(self, Shift, MousePos, RESULT);
Je veux faire cela: RESULT := Inherited DoMouseWheelDown(Shift, MousePos);
if not RESULT // Not handled then cyMouseWheelDown(self, Shift, MousePos, RESULT);
Malheureusement RESULT := Inherited DoMouseWheelDown(Shift, MousePos) est toujours true.
A+
|
|
mercredi 23 avril 2008 à 16:14:07 |
Re : override et Inherited d' une fonction avec resultat.

MAURICIO
|
La code suivant étant ce qui est dans DoMouseDown originel de TControl:
RESULT := false;
if Assigned(OnMouseWheelDown) then OnMouseWheelDown(self, Shift, MousePos, RESULT);
A+
|
|
mercredi 23 avril 2008 à 16:20:53 |
Re : override et Inherited d' une fonction avec resultat.

florenth
|
Réponse acceptée !
Ahhh ben voila !
Là y'a un problème ! (je sais, j'ai mis du temps à comprendre !)
Si tu places un point d'arrêt sur "RESULT := Inherited DoMouseWheelDown(Shift, MousePos)", un "Watch" sur la variable Result et que tu fais F7 lorsque tu arrives sur cette ligne, se passe-il un truc anormal ?
Tu verras au moins pourquoi la fonction renvoit False et non True.
|
|
mercredi 23 avril 2008 à 17:13:33 |
Re : override et Inherited d' une fonction avec resultat.

MAURICIO
|
En fait la syntaxe semble bonne! RESULT := Inherited DoMouseWheelDown(Shift, MousePos);
Ça appelle l' événement OnMouseWheelDown (propriété FOnMouseWheelDown, j' ai vu ça avec F7). Mais après ça va faire ce code: function TcyDBGrid.SelectCell(ACol, ARow: Longint): Boolean; begin Result := True; if Assigned(FOnSelectCell) then FOnSelectCell(Self, ACol, ARow, Result); end;
Puis reviens dans ma procedure ... Le fait que SelectCell = true n' a rien à voir avec: Inherited DoMouseWheelDown qui renvoie toujours true non?
D' ailleurs, je viens de voir cela: function TCustomGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; begin Result := inherited DoMouseWheelDown(Shift, MousePos); if not Result then begin if Row < RowCount - 1 then Row := Row + 1; Result := True; end; end;
Je fais comme eux ^^ Alors, une idée?
A+
|
|
mercredi 23 avril 2008 à 17:17:53 |
Re : override et Inherited d' une fonction avec resultat.

MAURICIO
|
Réponse acceptée !
Je suis bête: en faisant Inherited DoMouseWheelDown ça appelle celle-ci: function TCustomGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; begin Result := inherited DoMouseWheelDown(Shift, MousePos); if not Result then begin if Row < RowCount - 1 then Row := Row + 1; Result := True; end; end;
et non pas celle-ci: function TControl.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; begin Result := False; if Assigned(FOnMouseWheelDown) then FOnMouseWheelDown(Self, Shift, MousePos, Result); end;
merci Florenth, tu m' as mis sur la voie!
A+
|
|
mercredi 23 avril 2008 à 17:50:21 |
Re : override et Inherited d' une fonction avec resultat.

florenth
|
De rien !
La VCL et ses méthodes bizarres semble en déstabiliser plus d'un ! (thwilliam lui aussi semble en baver avec elle)
Et moi le premier. Je ne te dis même pas le nombre d'heures passées à comprendre ces phénomènes étranges (voire carrément ne pas les comprendre...).
|
|
Cette discussion est classée dans : fonction, result, override, inherited, fontionxyz
Répondre à ce message
Sujets en rapport avec ce message
Perte de donnée [ par Spikto ]
Bonjour j'ai une fonction qui permet de découper un variable de type texte mais j'ai des lettre qui disparaisse de temps en temps.Voici ma fonction ty
mot-clé inherited et les fonction [ par JesseJames ]
salut, j'ai un problème qui me torture la vie, help !Ayant 2 classes, A et B, A était la super-classe et B une classe fille.la méthode (fonction) de A
fonction result TStrings [ par florenth ]
Imaginez une fonction tres simple :function Transfert(memo : TMemo) : TStrings;var i : integer;beginfor i:=0 to memo.Lines.Count - 1 do result.Add(m
manipulation tstringlist [ par loicbernard ]
bonjour tout le monde, J'ai fait une petite fonction qui renvoit un TStringList. Mais je me demande comment je dois m'y prendre pour créer et libérer
Procédure stockée [ par diabolokev ]
Bonjour, J'ai un petit soucis pour appeler une fonction qui a été créée sous Oracle SQL Developer. J'ai essayé ce genre de chose : [code=pas]functi
Transmission adresse fonction à une dll [ par Oniria ]
Bonjour à tous, ma question est un peu technique.J'ai une interface CAN2.0B de Lawicel (l'interface CANUSB) qui doit me permettre de voir et de commu
functions et assembleur intégré [ par barbichette ]
Bonjour,j'ai un souci avec l'assembleur.J'ai un type TMyType=array[0..100] of byte;et une fonction :Function Calcul(a,b:TMyType):TMyType;assembler;asm
Deplacer des fichiers [ par gpwebmaster ]
Y'a t-il une fonction pour deplacer toutles fichiers d'un repertoire à un autre, parce qu'avec la fonction MoveFile ou MoveFileEx je ne peux déplcer q
Calcul du temps écoulé entre deux dates.. [ par 68_abis ]
Bonjour à tous,J'utilise la fonction time() en php pour connaitre le nombre de secondes écoulées entre deux dates..En php la date de référence pour le
Affectation de pointeurs [ par divadav ]
Bonjour à tous !!Je suis dans un projet, je monte un composant perso, et j'aurai besoin d'une fonction de ce style :procedure TStringGridPerso.SetPoin
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|