poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Il est possible de passer l'instance d'un objet en paramètre d'une fenêtre.
Ouvre(NomFen,oObjet)


En revanche, pour ce que paramètre devienne optionnel il faut lui affecter un type objet dynamique et une valeur...
PROCEDURE NomFen(foObjet est un objet dynamique = ???)
SI foObjet=null ALORS allouer une classe

Que faut-il mettre à la place de ??? pour éviter une erreur et que l'allocation de l'objet puisse être forcée par l'initialisation de la fenêtre.
J'ai essayé d'affecter avec Null mais cela provoque une erreur d'exécution 1053 (Types incompatibles durant une affectation) lors de l'allocation de la classe.

Autre solution ?

Contribution le : 23/09/2004 12:11
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Est il obligatoire de passer une valeur au paramètre ?
N'est il pas possible de faire :

PROCEDURE NomFen(foObjet est un objet dynamique)
foObjet = allouer un <NomDeLaClasse>
...


@ +


Contribution le : 23/09/2004 12:28
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Pour sûr! Sinon le paramètre n'est justement pas optionnel, ce qui est précisément l'objectif.

Cette syntaxe est effectivement classique mais un peu... illogique car si on attent un objet, il est alors inutile de l'allouer (je me lache : mouarf ! )

Contribution le : 23/09/2004 12:47
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Romu,

Alors on se lache!

Une idée que j'utilise avec une autre plateforme.

la technique est d'utiliser un membre public à la classe, par exemple ici bIsNotNull

cObjet est une classe
 bIsNotNull est un booleen
 PRIVE
 Var1 ets un ...
 etc...
  
FIN


Dans le constructeur de cette classe
 :bIsNotNull = Vrai


Maintenant dans ta fenetre
PROCEDURE NomFen(foObjet est un objet dynamique = ???)
SI foObjet:bIsNotNull=Faux ALORS allouer une classe


En espérant que cela fonctionner aussi pour WinDev

Contribution le : 23/09/2004 13:18
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci de votre attention,

Juste un truc avant de voir ta solution, pourquoi tester :isNotNull d'un objet non alloué.
En effet, si je veux teste s'il est alloué on a le classique :
SI foObjet=null ALORS

Le problème est bien l'affectation ??? dans la réception du paramètre.

[PS / HS]
C'est quand cela chauffe qu'on peut se lacher. Trop drole cet émoticone.
Noter au passage la modification de l'avatar qui passe d'un être sympatique et puissant (soyons modeste) à un être inégalé (normal c'est un clone) et sceptique sur sa destinée (encore un peu de modestie). Il faut avoir des enfants pour avoir relevé la nuance.

Contribution le : 23/09/2004 13:26
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Romu,

Parce que comme d'autre langage Windew ne permet pas d'allouer un objet dans le paramètre d'une fonction contrairement à .net et d'autre

de plus on ne peut pas comparer une instance de classe avec Null qui est différent de Nothing utiliser par d'autre langage, car l'objet n'est pas null puisque il a une structure, seulement elle n'est pas initialisée.

Ma méthode en fait est de tester le contenu d'un membre que je sait Null ou faux si si la classe n'a pas été initialisé.
D'ailleurs surement plutot à null

Contribution le : 23/09/2004 13:34
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Pourquoi tant de haine...

Contribution le : 23/09/2004 13:43
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: poo : objet en paramètre d'une fenêtre
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Ouaip, je suis bien en WinDev !
Je pense que le problème est là et n'engage que mon analyse :
Lors d'une déclaration d'objet dynamique, aucune réservation mémoire n'est effectuée ! on pointe un null ou autre chose... faudrait les sources de WinDev pour en avoir le coeur .Net.

L'affectation alloue (ou pointe) la mémoire nécessaire à la classe (réserve les membres et monte les méthodes).

Exemple :
- foObjet = allouer une classe // on alloue l'espace nécesaire à la classe
- foObjet = oObjet // foObjet pointe l'addresse de l'objet (WinDev travaille par adresse)
Dans les deux cas c'est l'allocation qui assure le 'remplissage' de la variable.

or avec l'affectation de null lors de la déclaration de mon paramètre, toute affectation ultérieure échoue et provoque à juste titre une erreur de correspondance de type (CQFD)!

--------
pour info, il s'agit en fait d'une fenêtre exploitée par une classe... à laquelle je dois passer l'instance courante (l'équivalent des mots clé MaFenêtre ou MonEtat)

Contribution le : 23/09/2004 13:45
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2