OVH Cloud OVH Cloud

Dessin form, couleur d'effacement ???

6 réponses
Avatar
X
Bonjour,

-1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
Line(x1, y1) - (x2, y2), c
Déjà, il y a peut être plus performant pour effacer ma zone, et uniquement
elle, bien que ça aille très vite ???


-2- En outre je ne sais pas comment faire pour effacer avec la couleur de la
feuille, car la feuille ayant la couleur "sommet de bouton" (system en
fait), je crois qu'elle peut virer du marron clair au gris avec Windows
98...
Certes je peux prendre la couleur de la form (x = form1.backcolor)
Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB, car
ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il s'il
existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???


Merci.
--
ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************

6 réponses

Avatar
X
' j'ai bien trouvé un truc, mais c'est trop long !!!

k = Point(1, 1) 'lecture couleur pixel 1,1
For i = debut To fin
For j = Gauche To droite
PSet (j, i), k ' réécriture au pixel
Next j
Next i
'




"X" <.> a écrit dans le message de news:

| Bonjour,
|
| -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
| Line(x1, y1) - (x2, y2), c
| Déjà, il y a peut être plus performant pour effacer ma zone, et uniquement
| elle, bien que ça aille très vite ???
|
|
| -2- En outre je ne sais pas comment faire pour effacer avec la couleur de
la
| feuille, car la feuille ayant la couleur "sommet de bouton" (system en
| fait), je crois qu'elle peut virer du marron clair au gris avec Windows
| 98...
| Certes je peux prendre la couleur de la form (x = form1.backcolor)
| Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB, car
| ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il s'il
| existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
|
|
| Merci.
| --
| ECRIRE
| http://irolog.free.fr/ecrire/index.htm
|
| LOGICIELS
| http://irolog.free.fr
|
| SITE
| http://irolog.free.fr/joe/index.htm
|
| FAQ VB
| http://faq.vb.free.fr
|
| PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ********************************************************
|
|
|
|
|
Avatar
Christian Hugoud
Voila...

Public Enum cGetColorFromRGBBasicColor
cred = 1
cgreen = 2
cblue = 3
End Enum


Public Function GetColorFromRGB&(ByVal RGBcolor As Long, ByVal BasicColor As
cGetColorFromRGBBasicColor)

Dim BackValue&, r$


r = Right("000000" & Hex$(RGBcolor), 6)

Select Case BasicColor

Case cGetColorFromRGBBasicColor.cgreen ' 2
BackValue = Val("&h" & Mid$(r, 3, 2))

Case cGetColorFromRGBBasicColor.cblue '3
BackValue = Val("&h" & Left$(r, 2))

Case cGetColorFromRGBBasicColor.cred '1
BackValue = Val("&h" & Right$(r, 2))

End Select

GetColorFromRGB = BackValue

End Function

Christian


"X" <.> a écrit dans le message de news:

' j'ai bien trouvé un truc, mais c'est trop long !!!

k = Point(1, 1) 'lecture couleur pixel 1,1
For i = debut To fin
For j = Gauche To droite
PSet (j, i), k ' réécriture au pixel
Next j
Next i
'




"X" <.> a écrit dans le message de news:

| Bonjour,
|
| -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
| Line(x1, y1) - (x2, y2), c
| Déjà, il y a peut être plus performant pour effacer ma zone, et
uniquement
| elle, bien que ça aille très vite ???
|
|
| -2- En outre je ne sais pas comment faire pour effacer avec la couleur
de
la
| feuille, car la feuille ayant la couleur "sommet de bouton" (system en
| fait), je crois qu'elle peut virer du marron clair au gris avec Windows
| 98...
| Certes je peux prendre la couleur de la form (x = form1.backcolor)
| Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB, car
| ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il
s'il
| existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
|
|
| Merci.
| --
| ECRIRE
| http://irolog.free.fr/ecrire/index.htm
|
| LOGICIELS
| http://irolog.free.fr
|
| SITE
| http://irolog.free.fr/joe/index.htm
|
| FAQ VB
| http://faq.vb.free.fr
|
| PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ********************************************************
|
|
|
|
|




Avatar
X
Merci beaucoup, j'y vais :o)


"Christian Hugoud" a écrit dans le message de news:

| Voila...
|
| Public Enum cGetColorFromRGBBasicColor
| cred = 1
| cgreen = 2
| cblue = 3
| End Enum
|
|
| Public Function GetColorFromRGB&(ByVal RGBcolor As Long, ByVal BasicColor
As
| cGetColorFromRGBBasicColor)
|
| Dim BackValue&, r$
|
|
| r = Right("000000" & Hex$(RGBcolor), 6)
|
| Select Case BasicColor
|
| Case cGetColorFromRGBBasicColor.cgreen ' 2
| BackValue = Val("&h" & Mid$(r, 3, 2))
|
| Case cGetColorFromRGBBasicColor.cblue '3
| BackValue = Val("&h" & Left$(r, 2))
|
| Case cGetColorFromRGBBasicColor.cred '1
| BackValue = Val("&h" & Right$(r, 2))
|
| End Select
|
| GetColorFromRGB = BackValue
|
| End Function
|
| Christian
|
|
| "X" <.> a écrit dans le message de news:
|
| > ' j'ai bien trouvé un truc, mais c'est trop long !!!
| >
| > k = Point(1, 1) 'lecture couleur pixel 1,1
| > For i = debut To fin
| > For j = Gauche To droite
| > PSet (j, i), k ' réécriture au pixel
| > Next j
| > Next i
| > '
| >
| >
| >
| >
| > "X" <.> a écrit dans le message de news:
| >
| > | Bonjour,
| > |
| > | -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
| > | Line(x1, y1) - (x2, y2), c
| > | Déjà, il y a peut être plus performant pour effacer ma zone, et
| > uniquement
| > | elle, bien que ça aille très vite ???
| > |
| > |
| > | -2- En outre je ne sais pas comment faire pour effacer avec la couleur
| > de
| > la
| > | feuille, car la feuille ayant la couleur "sommet de bouton" (system en
| > | fait), je crois qu'elle peut virer du marron clair au gris avec
Windows
| > | 98...
| > | Certes je peux prendre la couleur de la form (x = form1.backcolor)
| > | Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB,
car
| > | ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il
| > s'il
| > | existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
| > |
| > |
| > | Merci.
| > | --
| > | ECRIRE
| > | http://irolog.free.fr/ecrire/index.htm
| > |
| > | LOGICIELS
| > | http://irolog.free.fr
| > |
| > | SITE
| > | http://irolog.free.fr/joe/index.htm
| > |
| > | FAQ VB
| > | http://faq.vb.free.fr
| > |
| > | PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
| > |
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| > | ********************************************************
| > |
| > |
| > |
| > |
| > |
| >
| >
|
|
Avatar
X
Re-bonjour, heu, je n'arrive pas à faire marcher...

Je veux éviter de le mettre dans un module, j'ai déjà trop de form, pas la
peine d'en rajouter :o)

voici ce que je fais:

Enum cGetColorFromRGBBasicColor
cred = 1
cgreen = 2
cblue = 3
End Enum
'--------------
Function GetColorFromRGB&(ByVal RGBcolor As Long, ByVal BasicColor As
cGetColorFromRGBBasicColor)
Dim BackValue&, r$ ' trouve couleur form.Me
'
r = Right("000000" & Hex$(RGBcolor), 6)
Select Case BasicColor
Case cGetColorFromRGBBasicColor.cgreen ' 2
BackValue = Val("&h" & Mid$(r, 3, 2))
Case cGetColorFromRGBBasicColor.cblue '3
BackValue = Val("&h" & Left$(r, 2))
Case cGetColorFromRGBBasicColor.cred '1
BackValue = Val("&h" & Right$(r, 2))
End Select
GetColorFromRGB = BackValue
End Function
'--------------

sub ma_procedure()
Dim RGBcolor As Long
Dim BasicColor As cGetColorFromRGBBasicColor
Call GetColorFromRGB&(RGBcolor, BasicColor)
?????????
end sub

'-------------
Déroulement
'------------
- énumération en entête
- fonction de calcul
- procédure (ma_procedure)
Réceptrice qui appelle la fonction et voudrait avoir la valeur en retour...
'----------------

QUESTIONS
Où est l'erreur, l'appel est-il bon ???
Comment et dans quoi je récupère la valeur RGB en une seule valeur Hexa pour
couleur de fond de la form ???
-----------------------------------------

Merci :o)



"Christian Hugoud" a écrit dans le message de news:

| Voila...
|
| Public Enum cGetColorFromRGBBasicColor
| cred = 1
| cgreen = 2
| cblue = 3
| End Enum
|
|
| Public Function GetColorFromRGB&(ByVal RGBcolor As Long, ByVal BasicColor
As
| cGetColorFromRGBBasicColor)
|
| Dim BackValue&, r$
|
|
| r = Right("000000" & Hex$(RGBcolor), 6)
|
| Select Case BasicColor
|
| Case cGetColorFromRGBBasicColor.cgreen ' 2
| BackValue = Val("&h" & Mid$(r, 3, 2))
|
| Case cGetColorFromRGBBasicColor.cblue '3
| BackValue = Val("&h" & Left$(r, 2))
|
| Case cGetColorFromRGBBasicColor.cred '1
| BackValue = Val("&h" & Right$(r, 2))
|
| End Select
|
| GetColorFromRGB = BackValue
|
| End Function
|
| Christian
|
|
| "X" <.> a écrit dans le message de news:
|
| > ' j'ai bien trouvé un truc, mais c'est trop long !!!
| >
| > k = Point(1, 1) 'lecture couleur pixel 1,1
| > For i = debut To fin
| > For j = Gauche To droite
| > PSet (j, i), k ' réécriture au pixel
| > Next j
| > Next i
| > '
| >
| >
| >
| >
| > "X" <.> a écrit dans le message de news:
| >
| > | Bonjour,
| > |
| > | -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
| > | Line(x1, y1) - (x2, y2), c
| > | Déjà, il y a peut être plus performant pour effacer ma zone, et
| > uniquement
| > | elle, bien que ça aille très vite ???
| > |
| > |
| > | -2- En outre je ne sais pas comment faire pour effacer avec la couleur
| > de
| > la
| > | feuille, car la feuille ayant la couleur "sommet de bouton" (system en
| > | fait), je crois qu'elle peut virer du marron clair au gris avec
Windows
| > | 98...
| > | Certes je peux prendre la couleur de la form (x = form1.backcolor)
| > | Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB,
car
| > | ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il
| > s'il
| > | existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
| > |
| > |
| > | Merci.
| > | --
| > | ECRIRE
| > | http://irolog.free.fr/ecrire/index.htm
| > |
| > | LOGICIELS
| > | http://irolog.free.fr
| > |
| > | SITE
| > | http://irolog.free.fr/joe/index.htm
| > |
| > | FAQ VB
| > | http://faq.vb.free.fr
| > |
| > | PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
| > |
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| > | ********************************************************
| > |
| > |
| > |
| > |
| > |
| >
| >
|
|
Avatar
X
Je te remercie, c'est plus court ainsi pour la couleur...

Pour le carré, oui, ça j'y avais pensé, mais je présume que le programme
fait une boucle pour remplir le carré, alors que ce soit moi ou lui qui
fasse la boucle, à l'oeil je ne vois aucune différence de temps :o)
-----------



"Pascal B." a écrit dans le message de news:

| Salut Joe,
|
| Il ne faut pas faire de conversion des couleurs systèmes (byte le plus
significatif des couleurs RGB <> 0); Windows les interprète
| automatiquement en couleur normal RGB quand elles sont utilisées dans des
méthodes ou des propriétés telsque Line, ForeColor,
| BackColor, etc...
|
| Donc pour "effacer" (cad dessiner un rectangle de la même couleur que le
fond de la form), il suffit d'écrire:
|
| Me.Line (x1,y1) - (x2,y2), Me.BackColor, BF
|
| (Me est facultatif)
| (le paramètre BF permet de dessiner un rectangle rempli (Filled Box) donc
pas besoin de boucle For !!!)
|
| Amicalement
| Pascal B.
|
|
|
| "X" <.> wrote in message news:
|| Bonjour,
||
|| -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
|| Line(x1, y1) - (x2, y2), c
|| Déjà, il y a peut être plus performant pour effacer ma zone, et
uniquement
|| elle, bien que ça aille très vite ???
||
||
|| -2- En outre je ne sais pas comment faire pour effacer avec la couleur de
la
|| feuille, car la feuille ayant la couleur "sommet de bouton" (system en
|| fait), je crois qu'elle peut virer du marron clair au gris avec Windows
|| 98...
|| Certes je peux prendre la couleur de la form (x = form1.backcolor)
|| Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB, car
|| ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il s'il
|| existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
||
||
|| Merci.
|| --
|| ECRIRE
|| http://irolog.free.fr/ecrire/index.htm
||
|| LOGICIELS
|| http://irolog.free.fr
||
|| SITE
|| http://irolog.free.fr/joe/index.htm
||
|| FAQ VB
|| http://faq.vb.free.fr
||
|| PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
|| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
|| ********************************************************
||
||
||
||
||
|
|
Avatar
Pascal B.
Salut Joe,

Il ne faut pas faire de conversion des couleurs systèmes (byte le plus significatif des couleurs RGB <> 0); Windows les interprète
automatiquement en couleur normal RGB quand elles sont utilisées dans des méthodes ou des propriétés telsque Line, ForeColor,
BackColor, etc...

Donc pour "effacer" (cad dessiner un rectangle de la même couleur que le fond de la form), il suffit d'écrire:

Me.Line (x1,y1) - (x2,y2), Me.BackColor, BF

(Me est facultatif)
(le paramètre BF permet de dessiner un rectangle rempli (Filled Box) donc pas besoin de boucle For !!!)

Amicalement
Pascal B.



"X" <.> wrote in message news:
| Bonjour,
|
| -1- Je dessine sur une feuille, ensuite j'efface en traçant des ligne:
| Line(x1, y1) - (x2, y2), c
| Déjà, il y a peut être plus performant pour effacer ma zone, et uniquement
| elle, bien que ça aille très vite ???
|
|
| -2- En outre je ne sais pas comment faire pour effacer avec la couleur de la
| feuille, car la feuille ayant la couleur "sommet de bouton" (system en
| fait), je crois qu'elle peut virer du marron clair au gris avec Windows
| 98...
| Certes je peux prendre la couleur de la form (x = form1.backcolor)
| Mais ça ne me dit pas comment ensuite rentrer cette couleur en RGB, car
| ainsi je n'ai qu'une valeur, et... il m'en faut 3, quelqu'un sait-il s'il
| existe une conversion (RGB(c1, c2, c3) = form1.backcolor) ???
|
|
| Merci.
| --
| ECRIRE
| http://irolog.free.fr/ecrire/index.htm
|
| LOGICIELS
| http://irolog.free.fr
|
| SITE
| http://irolog.free.fr/joe/index.htm
|
| FAQ VB
| http://faq.vb.free.fr
|
| PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
| http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
| ********************************************************
|
|
|
|
|