Accueil > Forum > > > > surcharge class et méthode
surcharge class et méthode
mercredi 10 octobre 2007 à 15:12:03 |
surcharge class et méthode

gregorian
|
Bonjour, J'aurais voulu savoir si il était possible de surcharger une classe et une méthode en visual fox pro Exemple: En vb.net, on peut écrire le constructeur de classe comme ceci: Public Sub New(ByVal name As String) Me.name = name Me.forname = "" End Sub Public Sub New(ByVal name As String, ByVal forname As String) Me.name = name Me.forname = forname End Sub ou sub new est le init() de foxpro. Je ne trouve pas le moyen de reproduire la même chose en fox. De même pour les méthodes. Si c'est possible, est ce le même moyen pour établir des paramètres facultatifs ? Exemple: la commande SUBSTR(cExpression,n startPosition[,n end position]) Dans le même ordre d'idée, lorsque je crée une classe en fox, il m'ouvre d'office le class designer ou je doir naviguer de partie de code en partie de code via la combox en heut à droite. N'y a t'il pas moyen de voir l'ensdemble de son code. Merci de vote aide.
|
|
jeudi 11 octobre 2007 à 08:43:45 |
Re : surcharge class et méthode

MichelAtoutFox
|
Bonjour,
VFP n'est pas un langage typé, donc la liberté est complète dans le passage des paramètres et dans la surcharge des classes.
soit par exemple une classe toto, dont l'init ne requiert pas de paramètres. Si tu crées une classe dérivée de toto (sous_toto1, par exemple) dont l'init doit recevoir et traiter 2 paramètres, tu vas dans son init écrire: Lparameters mon_param1 , mon_param2 * pour traiter maintenant les 2 paramètres, on écrirait do case case pcount()=0 && pas de paramètres reçus
case pcount() = 1 do case case vartype(mon_param1)="C"
case vartype(mon_param1)="N" ... end case && vérification du type du param unique
case pcount()=2 * on traite également tous les cas
end case && le nombre de paramètres reçus
pour déclencher l'init de la classe parent (toto), il suffit de mettre un dodefault()
tu peux le mettre avant le traitement des paamètres, ou après, selon ce qui te convient pour ta classe
et tu continueras de sous-classer sous_toto1 en sous_toto2 de la même façon. Tu verras souvent du code écrit comme ceci: Lparameters monParam1 as String, monParam2 as Integer Ce n'est pas un typage, mais seulement une indication qui facilite la maintenance et qui est utilisée dans l'intellisense.
Pour voir le code d'une classe en entier, tu peux au choix: ne pas utiliser le designer et coder tes classes dans des prg, ou bien si tu utilises le designer, en ouvrant l'explorateur de classe sur une bibliothèque ou sur un form, tu trouveras un bouton "voir le code de la classe".
Est-ce plus clair?
|
|
jeudi 11 octobre 2007 à 10:17:37 |
Re : surcharge class et méthode

gregorian
|
Bonjour, ouais... En fait, il n'y a pas de surcharge des méthodes, il faut tester le nombre de param recus et leur type. L'un dans l'autre, ce n'est pas moins de boulot c'est juste une autre manière de faire. Concernant la surcharge des init de classe, ce ne serait pas plutot plus proche du systeme de classe abstraite que de la surcharge réelle ? Si pour pouvoir créer un deuxième init je doit créer une autre classe... Ou est il possible dans la sous classe d'appeller le code de la classe parent ? Je m'explique: je fais ceci DEFINE CLASS Toto as CUSTOM public init() public function maFonction_1() endfunc ENDDEFINE DEFINE CLASS Tartenpion as Toto init(cName as string) ENDDEFINE Si dans mon code je fais oTest = CREATEOBJECT("Tartenpion","Jean") pourrais je faire un oTest.maFonction_1() ou devrais je redéfinir ma fonction_1 dans ma sous classe tartentpion ? Merci de ton aide. PS: c'est bête, j'adore vb.net pour sa gestion des classes et tout le reste mais je trouve la partie gestion liens avec une DB tellement lourd Alors que en fox la gestion de la DB est si simple mais les notions d'objets et leurs manipulations me parait si tordu Je sens que je vais demander un mix des deux au pere noel moi 
|
|
jeudi 11 octobre 2007 à 11:29:28 |
Re : surcharge class et méthode

MichelAtoutFox
|
Réponse acceptée !
Tu as raison, ça n'est pas de la "surcharge", à cause de l'absence de typage et de signature (2 concepts totalement étrangers au langage VFP) j'ai oublié de dire que si aucun paramètre n'est reçu dans une méthode qui en attend, VFP s'en fout! il va initialiser les variables à .F., et c'est tout Tu peux donc (mais ce n'est pas du tout élégant à mon avis) déclarer dans l'init de ta classe de plus haut niveau x paramètres, et ne les traiter que dans les classes dérivées qui les attendent réellement. pour appeller le code d'une classe parent, tu as le dodefault(), et aussi l'opérateur :: (regarde dans l'aide en ligne) pour appeler n'importe quelle méthode de la classe parent depuis une classe dérivée toutes les méthodes des classes parents seront visibles et utilisables depuis les classes dérivées et leurs instances, sauf si tu les déclares protégées (PROTECTED) ou masquées (HIDDEN) dans leur déclaration je te conseille la lecture de [ Lien ] pour bien comprendre les différences et similitudes de la prog objet en VFP et en .NET pour ce qui est du traitement des données en .NET, regarde StrataFrame, c'est un Framework orienté données pour VB et C#, écrit par des développeurs VFP, et c'est très très bien foutu (je l'utilise avec VB.NET pour des apps WinForm)
|
|
jeudi 11 octobre 2007 à 15:06:36 |
Re : surcharge class et méthode

gregorian
|
Merci pour ton aide,
Je vais suivre ton lien et faire un peu de lecture...
Pour le strataframe, je vais regarder cela mais ce sera pour mon édification perso car au boulot c'est du visual fox pro et bientot un peu de c#
Bon dvp
|
|
jeudi 11 octobre 2007 à 15:40:41 |
Re : surcharge class et méthode

MichelAtoutFox
|
StrataFrame, c'est très bien pour du dev C# centré sur les données, et comme M$ est en train de tuer VFP (pas de VFP10, arret du support, arret de la commercialisation), la migration est à envisager.
Tu peux venir aux Rencontres AtoutFox de novembre, à Paris? on va parler de tout ça...
|
|
Cette discussion est classée dans : class, classe, name, méthode, forname
Répondre à ce message
Sujets en rapport avec ce message
Héritage depuis une dll [ par elvom ]
Bonjour,Je travaille sur un projet VFP9.0 (nommé GTI) qui utilise une dll d'un autre projet VFP9.0 (nommé RFE)Je n'arrive pas à créer une classe fille
code compléte d'une classe [ par jee0404 ]
bonjour, Je me demande si quelqu'un connaiterai le moyen de voir le code complet d'une classe qui est utiliser par défaut ? peut-on le voir ?
affichage de données et tri [ par zouheir_ali ]
Bonjour à tous,je travaille avec vfp9 et sqlserver.dans une form j'ai des zones et une grille qui sont reliés par le même curseurje crée un curseur av
dbf to xls [ par ouadie_karouite ]
salut à tous les utilisateurs de foxpro.mon probléme ce de je veux une méthode ou une procédure qui permet de convertir les fichiers dbf to excel sach
Livres en rapport
|
Derniers Blogs
[RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE[RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE par Audrey
A l'occasion d'un projet client, j'ai utilisé RIA Services avec Silverlight 3 (mais cela fonctionne aussi avec la version 4), et je l'ai utilisé pour une interface façon Maitre / Détail. Voici comment j'ai procédé pour arriver à mes fins. Nous allons pren...
Cliquez pour lire la suite de l'article par Audrey CSDL FUNCTIONCSDL FUNCTION par Matthieu MEZIL
Dans mon post précédent , j'ai utilisé une CSDL Function afin de générer une requête SQL avec un DateDiff utilisant la date courante sur la BD à partir d'une requête LINQ. Dans le cadre de ce post , vous avez probablement remarqué que dans le cadre de plu...
Cliquez pour lire la suite de l'article par Matthieu MEZIL LINQ TO ENTITIESLINQ TO ENTITIES par Matthieu MEZIL
Cette semaine je suis à Montréal en tant que speaker sur Entity Framework pour l'évènement confoo . J'en profite pour remercier les organisateurs de cet évènement de m'avoir fait confiance et Access-IT de m'avoir permis d'y participer. En parallèle, j'ai ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante [ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1[ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1 par pierre
Si vous avez téléchargé comme moi Microsoft Forums NNTP Bridge V1 avant le 11 mars 2010 (voir [Astuce] Disponibilité de Microsoft Forum NNTP Bridge Version 1.0), un problème de date localisée pour les non anglais était présent. Un patch est disponibl...
Cliquez pour lire la suite de l'article par pierre
Forum
RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox RE : TXT VERS DBFRE : TXT VERS DBF par MichelAtoutFox
Cliquez pour lire la suite par MichelAtoutFox
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|