PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > nzn.fr.delphi > Mêmes propriétés avec héritage différent
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Mêmes propriétés avec héritage différent

Réponse
 
LinkBack Outils de la discussion
Vieux 10/01/2008, 09h13   #1
Don.José
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Mêmes propriétés avec héritage différent

Bonjour et bonne année !

Voilà j'ai un petit blème.

J'ai 2 composants avec les mêmes propriétés mais n'étant pas issus de la
même classe auxquels je voudrais appliquer les mêmes traitements

procédure FaitDesTrucs(Sender:TComponent);
begin

if (Sender is Tcompo1) then
with Tcompo1(Sender) do
begin

... traitements

end;
else if (Sender is Tcompo2) then
with Tcompo2(Sender) do
begin

... traitements (les mêmes tout pareil)

end;

end;

Y aurait-il un transtypage quelconque pour éviter ça ?

merci.

  Réponse avec citation
Vieux 10/01/2008, 09h39   #2
OBones
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent

Non, pas de manière propre.
Par contre, tu peux faire une classe qui prend l'un ou l'autre des
composants, note les valeurs, puis fait les traitements.
Ou dans ta fonction, tu commences par noter les valeurs puis tu fais les
traitements
  Réponse avec citation
Vieux 10/01/2008, 10h03   #3
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent

OBones a écrit :
> Non, pas de manière propre.


Faire une interface dédiée au traitement, et la rattacher à chacun des
objets. Non ? :-)

  Réponse avec citation
Vieux 10/01/2008, 10h10   #4
Don.José
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent

> Faire une interface dédiée au traitement, et la rattacher à chacun des
> objets. Non ? :-)
>


.... Euh... Mais encore ?

  Réponse avec citation
Vieux 10/01/2008, 13h43   #5
Francois Piette
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent

> J'ai 2 composants avec les mêmes propriétés mais n'étant pas issus de la
> même classe auxquels je voudrais appliquer les mêmes traitements


Si tu contrôles ces composants, alors tu peux les faire dériver tous les
deux de la même classe intermédiaire contenant les propriétés communes. Puis
alors tu manipules l'un ou l'autre via la classe intermédiaire.

TCustomDonJos = class(TComponent)
// Définitions des propriétés, méthodes et événements communs
end;

TDonJoseA = class(TCustomDonJose)
// Définitions des propriétés, méthodes et événements propres à cette
classe
end;

TDonJoseB = class(TCustomDonJose)
// Définitions des propriétés, méthodes et événements propres à cette
classe
end;


procedure FaitDesTrucs(Sender:TCustomDonJose);
begin
with Sender do
begin

... traitements

end;
end;


Tu peux passer à FaitDesTrucs() une instance de TDonJoseA, ou TDonJoseB
indifféremment.

--
PS: On peut aussi me joindre sur le forum
news://news.delphinaute.be/delphi.internet
--
Contribuez à l'effort SSL pour ICS.
Visitez http://www.overbyte.be/eng/ssl.html
--
francois.piette@overbyte.be
Auteur du freeware ICS - Internet Component Suite
Auteur du freeware MidWare - Multi-tiers framework
http://www.overbyte.be


  Réponse avec citation
Vieux 10/01/2008, 16h16   #6
Don.José
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent



> Si tu contrôles ces composants, alors tu peux les faire dériver tous les
> deux de la même classe intermédiaire contenant les propriétés communes.
> Puis
> alors tu manipules l'un ou l'autre via la classe intermédiaire.


Je sais bien mais justement non, je ne contrôle pas
En fait ce sont les compos TcxGridDBColumn et TcxGridDBBandedColumn de
l'ExpressuantumGrid dont j'initialise automatiquement certaines propriétés
identiques.

Dommage, merci.

  Réponse avec citation
Vieux 10/01/2008, 19h32   #7
Francois PIETTE [ICS-MidWare]
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent

> Je sais bien mais justement non, je ne contrôle pas
> En fait ce sont les compos TcxGridDBColumn et TcxGridDBBandedColumn de
> l'ExpressuantumGrid dont j'initialise automatiquement certaines propriétés
> identiques.


Et ces deux composants n'héritent pas par hazard déjà d'un ancêtre commun ?

--
francois.piette@overbyte.be
Auteur du freeware ICS - Internet Component Suite
Auteur du middleware multi-tiers MidWare
web: http://www.overbyte.be
blog: http://francois-piette.blogspot.com


  Réponse avec citation
Vieux 11/01/2008, 08h45   #8
Don.José
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mêmes propriétés avec héritage différent




> Et ces deux composants n'héritent pas par hazard déjà d'un ancêtre commun
> ?


SI, si,... au début.
Mais ensuite il y a séparation + une couche supplémentaire pour l'un des 2
et en fin chaque branche les mêmes propriétés.

ClassA
ClassB
ClassC.prop1
ClassC.prop2
...
et
ClassA
ClassB
ClassY
ClassZ.prop1
ClassZ.prop2
...

Bien entendu, ce sont les propriétés de la couche finale dont j'ai besoin.


Merci.

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 16h21.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,15535 seconds with 16 queries