j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de
nombreux objets vectoriels (environs 1000 objets composé de ligne et de
chemin).
L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la fonction
lastddlerror me renvoi 87 soit bad parameters mais ceci de manière aléatoire
(pour un zoom identique des fois s'affiche des fois non). Il semble que le
paramètre invalide soit l'adresse des données bitmap.
Or cette adresse est définie lors de la génération du DIB comme suit
'Charge la structure mbi
.Mbi = extGetDIBFromBitmap(GflBitmap)
'affecte les données bitmap
.Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage)
addr& = GlobalLock(.Hmem)
CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage
GlobalUnlock (.Hmem)
ceci dans un module publique (impossible d'allouer autant de mémoire dans un
module de classe je sais pas pourquoi mais c'est comme ça).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Hello,
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre une première fois, tester l'erreur et de repeindre une deuxième fois si la "bonne" erreur est générée (peut-être après un doevents et/ou un refresh du picturebox?)...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8msd$pl6$
j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de nombreux objets vectoriels (environs 1000 objets composé de ligne et de chemin).
L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de manière aléatoire (pour un zoom identique des fois s'affiche des fois non). Il semble que le paramètre invalide soit l'adresse des données bitmap. Or cette adresse est définie lors de la génération du DIB comme suit
'Charge la structure mbi .Mbi = extGetDIBFromBitmap(GflBitmap) 'affecte les données bitmap .Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage) addr& = GlobalLock(.Hmem) CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage GlobalUnlock (.Hmem)
ceci dans un module publique (impossible d'allouer autant de mémoire dans un module de classe je sais pas pourquoi mais c'est comme ça).
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre une
première fois, tester l'erreur et de repeindre une deuxième fois si la
"bonne" erreur est générée (peut-être après un doevents et/ou un refresh du
picturebox?)...
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:cc8msd$pl6$1@news.tiscali.fr
j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de
nombreux objets vectoriels (environs 1000 objets composé de ligne et
de chemin).
L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la
fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de
manière aléatoire (pour un zoom identique des fois s'affiche des fois
non). Il semble que le paramètre invalide soit l'adresse des données
bitmap.
Or cette adresse est définie lors de la génération du DIB comme suit
'Charge la structure mbi
.Mbi = extGetDIBFromBitmap(GflBitmap)
'affecte les données bitmap
.Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage)
addr& = GlobalLock(.Hmem)
CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage
GlobalUnlock (.Hmem)
ceci dans un module publique (impossible d'allouer autant de mémoire
dans un module de classe je sais pas pourquoi mais c'est comme ça).
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre une première fois, tester l'erreur et de repeindre une deuxième fois si la "bonne" erreur est générée (peut-être après un doevents et/ou un refresh du picturebox?)...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8msd$pl6$
j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de nombreux objets vectoriels (environs 1000 objets composé de ligne et de chemin).
L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de manière aléatoire (pour un zoom identique des fois s'affiche des fois non). Il semble que le paramètre invalide soit l'adresse des données bitmap. Or cette adresse est définie lors de la génération du DIB comme suit
'Charge la structure mbi .Mbi = extGetDIBFromBitmap(GflBitmap) 'affecte les données bitmap .Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage) addr& = GlobalLock(.Hmem) CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage GlobalUnlock (.Hmem)
ceci dans un module publique (impossible d'allouer autant de mémoire dans un module de classe je sais pas pourquoi mais c'est comme ça).
En fait je crois (je regarderais ça après la plage et oui c'est l'été et c'est Dimanche) que c'est parce-que je génére l'image depuis un objet, bien que l'image soit dans un module publique le fait d'appeler les fonctions depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans que ça pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible d'utiliser les globallock et consort dans une classe pour attribuer un gros bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données mais j'avoue que là je nage ! c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP cette nouvelle partie du programme).
A+
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre
une
première fois, tester l'erreur et de repeindre une deuxième fois si la "bonne" erreur est générée (peut-être après un doevents et/ou un refresh
du
picturebox?)...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8msd$pl6$ > j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de > nombreux objets vectoriels (environs 1000 objets composé de ligne et > de chemin). > > L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la > fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de > manière aléatoire (pour un zoom identique des fois s'affiche des fois > non). Il semble que le paramètre invalide soit l'adresse des données > bitmap. > Or cette adresse est définie lors de la génération du DIB comme suit > > 'Charge la structure mbi > .Mbi = extGetDIBFromBitmap(GflBitmap) > 'affecte les données bitmap > .Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage) > addr& = GlobalLock(.Hmem) > CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage > GlobalUnlock (.Hmem) > > ceci dans un module publique (impossible d'allouer autant de mémoire > dans un module de classe je sais pas pourquoi mais c'est comme ça). > > Sachant que l'affichage se déroule comme suit > > addr& = GlobalLock(DIB.Hmem) > dummy& = StretchDIBits(hdc, DIB.zoneDIBl.Left, DIB.zoneDIBl.Bottom, > DIB.zoneDIBl.Right, -DIB.zoneDIBl.Top, DIB.rectbitmap.Left, > DIB.rectbitmap.Top, DIB.rectbitmap.Right, DIB.rectbitmap.Bottom, > addr&, DIB.Mbi, DIB_RGB_COLORS, SRCAND) > GlobalUnlock (DIB.Hmem)
Merci François,
En fait je crois (je regarderais ça après la plage et oui c'est l'été et
c'est Dimanche) que c'est parce-que je génére l'image depuis un objet, bien
que l'image soit dans un module publique le fait d'appeler les fonctions
depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans que ça
pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible
d'utiliser les globallock et consort dans une classe pour attribuer un gros
bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données mais
j'avoue que là je nage !
c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP cette
nouvelle partie du programme).
A+
Christophe Vergon
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
ePgIccbYEHA.3512@TK2MSFTNGP12.phx.gbl...
Hello,
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre
une
première fois, tester l'erreur et de repeindre une deuxième fois si la
"bonne" erreur est générée (peut-être après un doevents et/ou un refresh
du
picturebox?)...
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:cc8msd$pl6$1@news.tiscali.fr
> j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de
> nombreux objets vectoriels (environs 1000 objets composé de ligne et
> de chemin).
>
> L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la
> fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de
> manière aléatoire (pour un zoom identique des fois s'affiche des fois
> non). Il semble que le paramètre invalide soit l'adresse des données
> bitmap.
> Or cette adresse est définie lors de la génération du DIB comme suit
>
> 'Charge la structure mbi
> .Mbi = extGetDIBFromBitmap(GflBitmap)
> 'affecte les données bitmap
> .Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage)
> addr& = GlobalLock(.Hmem)
> CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage
> GlobalUnlock (.Hmem)
>
> ceci dans un module publique (impossible d'allouer autant de mémoire
> dans un module de classe je sais pas pourquoi mais c'est comme ça).
>
> Sachant que l'affichage se déroule comme suit
>
> addr& = GlobalLock(DIB.Hmem)
> dummy& = StretchDIBits(hdc, DIB.zoneDIBl.Left, DIB.zoneDIBl.Bottom,
> DIB.zoneDIBl.Right, -DIB.zoneDIBl.Top, DIB.rectbitmap.Left,
> DIB.rectbitmap.Top, DIB.rectbitmap.Right, DIB.rectbitmap.Bottom,
> addr&, DIB.Mbi, DIB_RGB_COLORS, SRCAND)
> GlobalUnlock (DIB.Hmem)
En fait je crois (je regarderais ça après la plage et oui c'est l'été et c'est Dimanche) que c'est parce-que je génére l'image depuis un objet, bien que l'image soit dans un module publique le fait d'appeler les fonctions depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans que ça pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible d'utiliser les globallock et consort dans une classe pour attribuer un gros bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données mais j'avoue que là je nage ! c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP cette nouvelle partie du programme).
A+
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Pour être certain que l'erreur est aléatoire, tu peux essayer de peindre
une
première fois, tester l'erreur et de repeindre une deuxième fois si la "bonne" erreur est générée (peut-être après un doevents et/ou un refresh
du
picturebox?)...
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8msd$pl6$ > j'affiche sur un picturebox un gros bitmap (11000*8000 pixels) et de > nombreux objets vectoriels (environs 1000 objets composé de ligne et > de chemin). > > L'image ne s'affiche pas toujours et j'obtiens GDI_error (-1) et la > fonction lastddlerror me renvoi 87 soit bad parameters mais ceci de > manière aléatoire (pour un zoom identique des fois s'affiche des fois > non). Il semble que le paramètre invalide soit l'adresse des données > bitmap. > Or cette adresse est définie lors de la génération du DIB comme suit > > 'Charge la structure mbi > .Mbi = extGetDIBFromBitmap(GflBitmap) > 'affecte les données bitmap > .Hmem = GlobalAlloc(GMEM_MOVEABLE, .Mbi.bmiHeader.biSizeImage) > addr& = GlobalLock(.Hmem) > CopyMemory addr&, GflBitmap.Data, .Mbi.bmiHeader.biSizeImage > GlobalUnlock (.Hmem) > > ceci dans un module publique (impossible d'allouer autant de mémoire > dans un module de classe je sais pas pourquoi mais c'est comme ça). > > Sachant que l'affichage se déroule comme suit > > addr& = GlobalLock(DIB.Hmem) > dummy& = StretchDIBits(hdc, DIB.zoneDIBl.Left, DIB.zoneDIBl.Bottom, > DIB.zoneDIBl.Right, -DIB.zoneDIBl.Top, DIB.rectbitmap.Left, > DIB.rectbitmap.Top, DIB.rectbitmap.Right, DIB.rectbitmap.Bottom, > addr&, DIB.Mbi, DIB_RGB_COLORS, SRCAND) > GlobalUnlock (DIB.Hmem)
François Picalausa
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the data defined in the Declarations section) of the VBA module of any form or module in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$
En fait je crois (je regarderais ça après la plage et oui c'est l'été et c'est Dimanche) que c'est parce-que je génére l'image depuis un objet, bien que l'image soit dans un module publique le fait d'appeler les fonctions depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans que ça pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible d'utiliser les globallock et consort dans une classe pour attribuer un gros bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données mais j'avoue que là je nage ! c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP cette nouvelle partie du programme).
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation.
La seule chose indiquée est :
Form, Standard, and Class Module Data : The data segment (that is, the data
defined in the Declarations section) of the VBA module of any form or module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:cc8q90$fbg$1@news.tiscali.fr
En fait je crois (je regarderais ça après la plage et oui c'est l'été
et c'est Dimanche) que c'est parce-que je génére l'image depuis un
objet, bien que l'image soit dans un module publique le fait
d'appeler les fonctions depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans
que ça pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible
d'utiliser les globallock et consort dans une classe pour attribuer
un gros bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données
mais j'avoue que là je nage !
c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP
cette nouvelle partie du programme).
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the data defined in the Declarations section) of the VBA module of any form or module in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$
En fait je crois (je regarderais ça après la plage et oui c'est l'été et c'est Dimanche) que c'est parce-que je génére l'image depuis un objet, bien que l'image soit dans un module publique le fait d'appeler les fonctions depuis un module de classe pose pb.
Car dans tout le reste du programme j'affiche image et vecteurs sans que ça pose de pbs.
Concernant les modules de classes sais-tu pourquoi il est impossible d'utiliser les globallock et consort dans une classe pour attribuer un gros bloc mémoire ?
Je suppose que c'est une limite de VB sur l'encapsulation des données mais j'avoue que là je nage ! c'est ce que je vais faire d'ailleurs (lol)
Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP cette nouvelle partie du programme).
Christophe
Merci quand même, j'avais poser la question sur vb.winapi.graphics il y a qq temps, sans réponses.
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$ > En fait je crois (je regarderais ça après la plage et oui c'est l'été > et c'est Dimanche) que c'est parce-que je génére l'image depuis un > objet, bien que l'image soit dans un module publique le fait > d'appeler les fonctions depuis un module de classe pose pb. > > Car dans tout le reste du programme j'affiche image et vecteurs sans > que ça pose de pbs. > > Concernant les modules de classes sais-tu pourquoi il est impossible > d'utiliser les globallock et consort dans une classe pour attribuer > un gros bloc mémoire ? > > Je suppose que c'est une limite de VB sur l'encapsulation des données > mais j'avoue que là je nage ! > c'est ce que je vais faire d'ailleurs (lol) > > Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP > cette nouvelle partie du programme).
Merci quand même, j'avais poser la question sur vb.winapi.graphics il y a qq
temps, sans réponses.
Christophe Vergon
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
eFdsq6bYEHA.2868@TK2MSFTNGP09.phx.gbl...
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation.
La seule chose indiquée est :
Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:cc8q90$fbg$1@news.tiscali.fr
> En fait je crois (je regarderais ça après la plage et oui c'est l'été
> et c'est Dimanche) que c'est parce-que je génére l'image depuis un
> objet, bien que l'image soit dans un module publique le fait
> d'appeler les fonctions depuis un module de classe pose pb.
>
> Car dans tout le reste du programme j'affiche image et vecteurs sans
> que ça pose de pbs.
>
> Concernant les modules de classes sais-tu pourquoi il est impossible
> d'utiliser les globallock et consort dans une classe pour attribuer
> un gros bloc mémoire ?
>
> Je suppose que c'est une limite de VB sur l'encapsulation des données
> mais j'avoue que là je nage !
> c'est ce que je vais faire d'ailleurs (lol)
>
> Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP
> cette nouvelle partie du programme).
Merci quand même, j'avais poser la question sur vb.winapi.graphics il y a qq temps, sans réponses.
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$ > En fait je crois (je regarderais ça après la plage et oui c'est l'été > et c'est Dimanche) que c'est parce-que je génére l'image depuis un > objet, bien que l'image soit dans un module publique le fait > d'appeler les fonctions depuis un module de classe pose pb. > > Car dans tout le reste du programme j'affiche image et vecteurs sans > que ça pose de pbs. > > Concernant les modules de classes sais-tu pourquoi il est impossible > d'utiliser les globallock et consort dans une classe pour attribuer > un gros bloc mémoire ? > > Je suppose que c'est une limite de VB sur l'encapsulation des données > mais j'avoue que là je nage ! > c'est ce que je vais faire d'ailleurs (lol) > > Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP > cette nouvelle partie du programme).
Christophe
Confirmé, l'eereur provient du fait d'appeler la création d'image depuis une classe, même mieux il semble que si je défini l'image depuis une form (l'image est publique) et que je décharge la feuille avec un set mafeuille=nothing dans le unload l'image ne s'affiche plus, (mais elle est toujours en mémoire), comme si la référence était valide uniquement si l'objet dans la quelle elle est créee est toujours valide.
Mystères ...
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$ > En fait je crois (je regarderais ça après la plage et oui c'est l'été > et c'est Dimanche) que c'est parce-que je génére l'image depuis un > objet, bien que l'image soit dans un module publique le fait > d'appeler les fonctions depuis un module de classe pose pb. > > Car dans tout le reste du programme j'affiche image et vecteurs sans > que ça pose de pbs. > > Concernant les modules de classes sais-tu pourquoi il est impossible > d'utiliser les globallock et consort dans une classe pour attribuer > un gros bloc mémoire ? > > Je suppose que c'est une limite de VB sur l'encapsulation des données > mais j'avoue que là je nage ! > c'est ce que je vais faire d'ailleurs (lol) > > Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP > cette nouvelle partie du programme).
Confirmé, l'eereur provient du fait d'appeler la création d'image depuis une
classe, même mieux il semble que si je défini l'image depuis une form
(l'image est publique) et que je décharge la feuille avec un set
mafeuille=nothing dans le unload l'image ne s'affiche plus, (mais elle est
toujours en mémoire), comme si la référence était valide uniquement si
l'objet dans la quelle elle est créee est toujours valide.
Mystères ...
Christophe Vergon
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
eFdsq6bYEHA.2868@TK2MSFTNGP09.phx.gbl...
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation.
La seule chose indiquée est :
Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:cc8q90$fbg$1@news.tiscali.fr
> En fait je crois (je regarderais ça après la plage et oui c'est l'été
> et c'est Dimanche) que c'est parce-que je génére l'image depuis un
> objet, bien que l'image soit dans un module publique le fait
> d'appeler les fonctions depuis un module de classe pose pb.
>
> Car dans tout le reste du programme j'affiche image et vecteurs sans
> que ça pose de pbs.
>
> Concernant les modules de classes sais-tu pourquoi il est impossible
> d'utiliser les globallock et consort dans une classe pour attribuer
> un gros bloc mémoire ?
>
> Je suppose que c'est une limite de VB sur l'encapsulation des données
> mais j'avoue que là je nage !
> c'est ce que je vais faire d'ailleurs (lol)
>
> Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP
> cette nouvelle partie du programme).
Confirmé, l'eereur provient du fait d'appeler la création d'image depuis une classe, même mieux il semble que si je défini l'image depuis une form (l'image est publique) et que je décharge la feuille avec un set mafeuille=nothing dans le unload l'image ne s'affiche plus, (mais elle est toujours en mémoire), comme si la référence était valide uniquement si l'objet dans la quelle elle est créee est toujours valide.
Mystères ...
Christophe Vergon
"François Picalausa" a écrit dans le message de news:
Hello,
Je n'ai pas pu trouver de documentation concernant cette limitation. La seule chose indiquée est : Form, Standard, and Class Module Data : The data segment (that is, the
data
defined in the Declarations section) of the VBA module of any form or
module
in Visual Basic can be up to 64K.
Encore un des mystères de VB ;-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de news:cc8q90$fbg$ > En fait je crois (je regarderais ça après la plage et oui c'est l'été > et c'est Dimanche) que c'est parce-que je génére l'image depuis un > objet, bien que l'image soit dans un module publique le fait > d'appeler les fonctions depuis un module de classe pose pb. > > Car dans tout le reste du programme j'affiche image et vecteurs sans > que ça pose de pbs. > > Concernant les modules de classes sais-tu pourquoi il est impossible > d'utiliser les globallock et consort dans une classe pour attribuer > un gros bloc mémoire ? > > Je suppose que c'est une limite de VB sur l'encapsulation des données > mais j'avoue que là je nage ! > c'est ce que je vais faire d'ailleurs (lol) > > Une petite précision l'OS (imposé) Win98SE (j'ai pas testé sous XP > cette nouvelle partie du programme).