codea
Messages postés94Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 6 août 2006
-
18 nov. 2005 à 19:17
codea
Messages postés94Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 6 août 2006
-
19 nov. 2005 à 01:46
dans un module de déclare:
Type tDimensions
Longueur As Single
largeur As Single
Epaisseur As Single
End Type
Dans une classe je met:
Public Property Get Dimension() As tDimensions
Dimension = m_Dimensions
End Property
ca me retourne une erreur:
seuls les types publics définis par l'utilisateur et qui sont définis
dans des modules d'objets publics peuvent être utilisés comme types
renvoyés, pour des procédures publiques de modules de classe...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 18 nov. 2005 à 20:28
Ben pourtant, la description de l'erreur est précise (ce qui est rare sous VB6 !)
Le type doit être déclaré public dans ton module de classe et <strike>non dans un module</strike> : comment veux tu sinon qu'un autre programme accède à ton type s'il n'est pas déclaré dans ta classe ?
_____________________________________________________________________
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 18 nov. 2005 à 20:57
Ben je n'ai aucun problème pour déclarer un type dans une classe (et je
te raconte pas le nombre de fois que j'ai utilisé, et que j'utilise
encore, des types dans des classes !). Qu'ils soient public, ou
private, ca marche
Par contre, faut bien les déclarer en Public et non en Global : le global est limité à des variables !
Voici un petit exemple qui marche (tout dans une classe) :
Public Type Salut
s As String
End Type
Public Function Salut() As Salut
Dim s As Salut
Let Salut = s
End Function
_____________________________________________________________________
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 nov. 2005 à 00:49
public = pour le projet
private = pour le module
friend = pour le groupe de projet, autrement dit, pour les projets greffés. exemple, une DLL (ActiveX) compilée utilisée.
le problème est, comme ton message l'indique, qu'un type (même public) ne peut pas être renvoyé en public, justement parce que le module peut être compilé (donc pas accessible sans FRIEND).
ton type doit donc en plus être déclaré en module public de projet, ou privé sur la Form.
l'exemple de COMPARAISON pour le principe est COMPARABLE (redondance volontaire) à l'API GetCursorPos qui renvoie un type POINTAPI qu'il faut donc aussi ~re-déclarer~.
(c'est pas vrai, c'est pour se représenter le principe... pas évident d'expliquer çà à l'écrit)