J'ai créé une classe CMyField qui dérive de DataColumn.
Lorsque j'essaie d'initialiser ma variable en la "castant" grâce à une
variable du type DataColumn, mon programme plante (cast invalid...)
myField = (CMyField) col;
Si une âme charitable pouvait m'expliquer pourquoi.
> // et la ca plante CMyField myField = (CMyField) col;
ah ben voui ! là je comprends mieux :-)
C'est pas possible ton affaire, tu voudrais faire de l'héritage à l'envers :-)
La colonne c'est un DataColumn par un CMyField, tu pourrais caster un CMyField en DataColumn, là oui ça serait possible, mais pas l'inverse...
--
///3rL1n____
MistigriS
> La colonne c'est un DataColumn par un CMyField, tu pourrais caster un CMyField en DataColumn, là oui ça serait possible, mais pas l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de DataComumn, comment puis-je m’en sortir pour en initialiser cette variable reprenant toutes les valeurs de la variable ‘col’ (de type DataComumn) ?
Merci
> La colonne c'est un DataColumn par un CMyField, tu pourrais caster un
CMyField en DataColumn, là oui ça serait possible, mais pas
l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de
DataComumn, comment puis-je m’en sortir pour en initialiser cette variable
reprenant toutes les valeurs de la variable ‘col’ (de type DataComumn) ?
> La colonne c'est un DataColumn par un CMyField, tu pourrais caster un CMyField en DataColumn, là oui ça serait possible, mais pas l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de DataComumn, comment puis-je m’en sortir pour en initialiser cette variable reprenant toutes les valeurs de la variable ‘col’ (de type DataComumn) ?
Merci
Der§en
Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton book....
Der§en.
"Merlin" a écrit dans le message de news:
Je ne désespère pas de trouver ton book dans chez Eyrolles un jour :o)))
il part à l'impression lundi matin, je viens de signer le BAT ...
--
///3rL1n____
Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton
book....
Der§en.
"Merlin" <Merlin@LesFees.Net> a écrit dans le message de news:
mn.8d4c7d62461a3151.18651@LesFees.Net...
Je ne désespère pas de trouver ton book dans chez Eyrolles un jour :o)))
il part à l'impression lundi matin, je viens de signer le BAT ...
Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton book....
Der§en.
"Merlin" a écrit dans le message de news:
Je ne désespère pas de trouver ton book dans chez Eyrolles un jour :o)))
il part à l'impression lundi matin, je viens de signer le BAT ...
--
///3rL1n____
Paul Bacelar
"MistigriS" wrote in message news:
La colonne c'est un DataColumn par un CMyField, tu pourrais caster un CMyField en DataColumn, là oui ça serait possible, mais pas l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de DataComumn, comment puis-je m'en sortir pour en initialiser cette variable reprenant toutes les valeurs de la variable 'col' (de type DataComumn) ?
Merci
Si l'on en croit le message d'erreur, c'est " (obj as mshtml.IHTMLInputImage);" qui pose problème.
Le problème arrive en Debug ?
Le plus simple est d'implémenter un operator de cast dans CMyField.
<CODE>
public class CMyField : System.Data.DataColumn {
CMyField(System.Data.DataColumn dc)
{
....
....
....
}
public static explicit operator CMyField(System.Data.DataColumn dc) { return new CMyField(dc); } }
</CODE>
Mais je pense que vous devriez vous penchez sur le DesignPatten Decorator.
Il est peut-être un peu overkill, mais si votre exemple n'est qu'une simplification de votre vrai problème, il peut vous être for utile.
Si vous avez de difficultés, exposez votre problème initial pour que l'on trouve une solution adaptée. -- Paul Bacelar MVP VC++
"MistigriS" <MistigriS@discussions.microsoft.com> wrote in message
news:1E233859-5CAD-411C-8697-422A51C07574@microsoft.com...
La colonne c'est un DataColumn par un CMyField, tu pourrais caster un
CMyField en DataColumn, là oui ça serait possible, mais pas
l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de
DataComumn, comment puis-je m'en sortir pour en initialiser cette variable
reprenant toutes les valeurs de la variable 'col' (de type DataComumn) ?
Merci
Si l'on en croit le message d'erreur, c'est " (obj as
mshtml.IHTMLInputImage);" qui pose problème.
Le problème arrive en Debug ?
Le plus simple est d'implémenter un operator de cast dans CMyField.
<CODE>
public class CMyField : System.Data.DataColumn
{
CMyField(System.Data.DataColumn dc)
{
....
....
....
}
public static explicit operator CMyField(System.Data.DataColumn dc) {
return new CMyField(dc);
}
}
</CODE>
Mais je pense que vous devriez vous penchez sur le DesignPatten Decorator.
La colonne c'est un DataColumn par un CMyField, tu pourrais caster un CMyField en DataColumn, là oui ça serait possible, mais pas l'inverse...
Dans ce cas, sachant que CMyField est ma classe fille dérivant de DataComumn, comment puis-je m'en sortir pour en initialiser cette variable reprenant toutes les valeurs de la variable 'col' (de type DataComumn) ?
Merci
Si l'on en croit le message d'erreur, c'est " (obj as mshtml.IHTMLInputImage);" qui pose problème.
Le problème arrive en Debug ?
Le plus simple est d'implémenter un operator de cast dans CMyField.
<CODE>
public class CMyField : System.Data.DataColumn {
CMyField(System.Data.DataColumn dc)
{
....
....
....
}
public static explicit operator CMyField(System.Data.DataColumn dc) { return new CMyField(dc); } }
</CODE>
Mais je pense que vous devriez vous penchez sur le DesignPatten Decorator.
Il est peut-être un peu overkill, mais si votre exemple n'est qu'une simplification de votre vrai problème, il peut vous être for utile.
Si vous avez de difficultés, exposez votre problème initial pour que l'on trouve une solution adaptée. -- Paul Bacelar MVP VC++
Merlin
> Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton book....
non, car dans l'esprit le book c'est "De Delphi à C#", avec un cours "c# expliqué aux utilisateurs Delphi" et la majorité des exemples traités dans les 2 langages. Le principal du livre était terminé depuis juin, ce n'est donc pas à dessein à cause de la vente des IDE Borland, juste une bonne intuition sur la voie à suivre pour les développeurs Delphi...
Je dirais qu'en fait la situation est même profitable au livre. Faire un livre sur BDS 2006 qui est en framework 1.1 alors que MS a sorti tout un tas de choses en .NET dont des EDI gratuits superbes, les ventes de BDS 2006 vont être encore pire que celles de BDS 2005 à mon avis. Ce qui bien entendu est très mauvais pour un bouquin accroché à la version de l'EDI. En revanche, comme l'esprit du livre c'est de permettre aux développeurs Delphi de passer à C# facilement, il se trouve que la situation donne raison à ma vision des choses et que cela pourrait intéresser potentiellement beaucoup plus de lecteurs, comme ceux qui se fichent de BDS2006 mais qui voudraient comprendre C# expliqué à partir de Delphi.
On verra comment le livre sera perçu par les lecteurs, ce sont eux qui tranchent in fine de toute façon ...
--
///3rL1n____
> Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton
book....
non, car dans l'esprit le book c'est "De Delphi à C#", avec un cours
"c# expliqué aux utilisateurs Delphi" et la majorité des exemples
traités dans les 2 langages.
Le principal du livre était terminé depuis juin, ce n'est donc pas à
dessein à cause de la vente des IDE Borland, juste une bonne intuition
sur la voie à suivre pour les développeurs Delphi...
Je dirais qu'en fait la situation est même profitable au livre. Faire
un livre sur BDS 2006 qui est en framework 1.1 alors que MS a sorti
tout un tas de choses en .NET dont des EDI gratuits superbes, les
ventes de BDS 2006 vont être encore pire que celles de BDS 2005 à mon
avis. Ce qui bien entendu est très mauvais pour un bouquin accroché à
la version de l'EDI.
En revanche, comme l'esprit du livre c'est de permettre aux
développeurs Delphi de passer à C# facilement, il se trouve que la
situation donne raison à ma vision des choses et que cela pourrait
intéresser potentiellement beaucoup plus de lecteurs, comme ceux qui se
fichent de BDS2006 mais qui voudraient comprendre C# expliqué à partir
de Delphi.
On verra comment le livre sera perçu par les lecteurs, ce sont eux qui
tranchent in fine de toute façon ...
> Merci pour l'info, j'ai eu un peur que la mise en vente de Delphi annule ton book....
non, car dans l'esprit le book c'est "De Delphi à C#", avec un cours "c# expliqué aux utilisateurs Delphi" et la majorité des exemples traités dans les 2 langages. Le principal du livre était terminé depuis juin, ce n'est donc pas à dessein à cause de la vente des IDE Borland, juste une bonne intuition sur la voie à suivre pour les développeurs Delphi...
Je dirais qu'en fait la situation est même profitable au livre. Faire un livre sur BDS 2006 qui est en framework 1.1 alors que MS a sorti tout un tas de choses en .NET dont des EDI gratuits superbes, les ventes de BDS 2006 vont être encore pire que celles de BDS 2005 à mon avis. Ce qui bien entendu est très mauvais pour un bouquin accroché à la version de l'EDI. En revanche, comme l'esprit du livre c'est de permettre aux développeurs Delphi de passer à C# facilement, il se trouve que la situation donne raison à ma vision des choses et que cela pourrait intéresser potentiellement beaucoup plus de lecteurs, comme ceux qui se fichent de BDS2006 mais qui voudraient comprendre C# expliqué à partir de Delphi.
On verra comment le livre sera perçu par les lecteurs, ce sont eux qui tranchent in fine de toute façon ...
--
///3rL1n____
MistigriS
> Le plus simple est d'implémenter un operator de cast dans CMyField.
public static explicit operator CMyField(System.Data.DataColumn dc) { return new CMyField(dc); }
oui mais ca me donnait une erreur de compilation
Mais je pense que vous devriez vous penchez sur le DesignPatten Decorator. http://www.dofactory.com/Patterns/PatternDecorator.aspx
c'est ce que je viens de faire et ca m'a remis les idées en place. Ce que j'essayais marche maintenant comme je voulais
Merci beaucoup à vous deux
> Le plus simple est d'implémenter un operator de cast dans CMyField.
public static explicit operator CMyField(System.Data.DataColumn dc) {
return new CMyField(dc);
}
oui mais ca me donnait une erreur de compilation
Mais je pense que vous devriez vous penchez sur le DesignPatten Decorator.
http://www.dofactory.com/Patterns/PatternDecorator.aspx
c'est ce que je viens de faire et ca m'a remis les idées en place.
Ce que j'essayais marche maintenant comme je voulais