OVH Cloud OVH Cloud

couleur comme argument de fonction

14 réponses
Avatar
Pas de Spam
bonjour,

j'aimerais passer une couleur dans un fonction comme argument (optionnel ou
pas)
----------
exemple

Public Sub testfonc(ByVal coul As ...,Optional ByVal coul2 As Color =
Color.Black)
....
end sub

pour appeler
testfonc (color.red) ou testfonc (color.black,color.yellow)
----------


enfin bref j'ai essayer plein de chose a la place de color mais rien ne
passe...

comment faire !!! je désespère

10 réponses

1 2
Avatar
Ambassadeur Kosh
> bonjour,
j'aimerais passer une couleur dans un fonction comme argument (optionnel


ou
pas)



en C# mais bon..
et surtout pas d'optionel.

public void f(Color color)
{...

et puis ça s'appelle avec
objet.f(Color.Black) ;
objet.f(Color.FromARGB(64,128,128,128) ;
...
Avatar
Ambassadeur Kosh
using System.Drawing;

mais j'imagine que c'est pas ça...
Avatar
Xharkin
Pas de Spam :
bonjour,



j'aimerais passer une couleur dans un fonction comme argument
(optionnel ou pas)



TestFonc(System.Drawing.Color.Blue)

Sub TestFonc(ByVal Coul As System.Drawing.Color)
'...
'pour exemple
Me.BackColor = Coul
End Sub
Avatar
Pas de Spam
"Ambassadeur Kosh" a écrit dans le message de
news:
using System.Drawing;

mais j'imagine que c'est pas ça...




j'ai déjà essayer mais rien !!!

merci quand même et dommage pour le c car moi je le veux en VB
Avatar
Pas de Spam
"Xharkin" a écrit dans le message de news:
Pas de Spam :
bonjour,



j'aimerais passer une couleur dans un fonction comme argument
(optionnel ou pas)



TestFonc(System.Drawing.Color.Blue)

Sub TestFonc(ByVal Coul As System.Drawing.Color)
'...
'pour exemple
Me.BackColor = Coul
End Sub



je vais essayer ce soir...
car j'ai essayer le system.drawing.color mais l'appel de la fonction restait
TestFonc(Color.Blue)

donc je vais voir en appelant - TestFonc(System.Drawing.Color.Blue)

mais je ne pense pas que ça va changer grand chose !!
je vous dis ça des que j'ai essayer
Avatar
Pas de Spam
bon merci pour les reponses precedente mais ca ne me convient pas

je ne voulais pas trop rentre dasn les details mais voila je developpe un
peu plus

ce que je veut c'est un argument couleur en optionnel
effectivement si le optionnal n'est pas actif ca marceh impecable mais le
probleme viens du fait que system.drawing.color est readonly donc on ne peux
fixer cette atribue par default(pour le optionnal)
comme par exemple

sub test (byval col1 as system.draqing.color,optional byval col2 as
system.draqing.color=color.black,optional byval tt as integer=5)
'par exmeple pour tt ca marche mias pas pour col2
end sub

bon bref pour parrer ce probleme j'overload la function

overloads sub test (byval col1 as color,byval col2 as color)
'1er sub
end sub
overloads sub test (byval col1 as color)
'2eme sub
end sub


docn ca marche on peut meme enlever le mots overlaods car lui aussi est
optionnel ;-)

ma fonction test etant tres longue je ne veux pas la mettre deux fois dans
mon code car identique sauf 1 couleur qui change donc je fais

sub test (byval col1 as color,byval col2 as color)
label1.backcolor=col2 'j'utilise ma col2 puis appele de la sub avec col1
uniquement
test(col1)
end sub

sub test (byval col1 as color)
'2eme sub
end sub

en gros j'appele la 2eme sub de ma premiere

masi je trouve ca tres naze au niveaux programmation donc je reviens a mon
affaire
comment on pourait utiliser optionnal ou une autre facon pour que ce soit un
peu plus elegant....
bien sur j'ai mis ca dans un sub mais ca peu etre dasn une class ca ne
change rien

merci pour les idee ou les piste a explorer
Avatar
Xharkin
Pas de Spam :

bon merci pour les reponses precedente mais ca ne me convient
pas



Avez-vous essayé de passer par le biais du nom des couleurs ?

Par exemple :

Imports Couleur = System.Drawing.Color
..
Sub Appellante()
Test("Blue","Red")
' ou bien si vous récupérez les couleurs
' à partir d'une propriété
Test(Couleur.Blue.ToKnownColor.ToString,_
Couleur.Red.ToKnownColor.ToString)
End Sub

Sub Test(Optional ByVal ParaCoul1 As String = "Beige", _
Optional ByVal ParaCoul2 As String = "Black")

' Récupération des paramêtres
' et transformation en couleurs
Dim Coul1 As New Couleur
Dim Coul2 As New Couleur
Coul1=Couleur.FromName(ParaCoul1)
Coul2=Couleur.FromName(ParaCoul2)
..
Test(, ParaCoul2)
..
End Sub
Avatar
Xharkin
Pas de Spam :

bon merci pour les reponses precedente mais ca ne me convient
pas



Avez-vous essayé de passer par le biais du nom des couleurs ?

Par exemple :

Imports Couleur = System.Drawing.Color
..
Sub Appellante()
Test("Blue","Red")
' ou bien si vous récupérez les couleurs
' à partir d'une propriété
Test(Label1.BackColor.ToKnownColor.ToString,_
Label2.BackColor.ToKnownColor.ToString)
End Sub

Sub Test(Optional ByVal ParaCoul1 As String = "Beige", _
Optional ByVal ParaCoul2 As String = "Black")

' Récupération des paramêtres
' et transformation en couleurs
Dim Coul1 As New Couleur
Dim Coul2 As New Couleur
Coul1=Couleur.FromName(ParaCoul1)
Coul2=Couleur.FromName(ParaCoul2)
..
Test(, ParaCoul2)
..
End Sub
Avatar
Xharkin
Pas de Spam :

bon merci pour les reponses precedente mais ca ne me convient
pas



Avez-vous essayé de passer par le biais du nom des couleurs ?

Par exemple :

Imports Couleur = System.Drawing.Color
..
Sub Appellante()
Test("Blue","Red")
' ou bien si vous récupérez les couleurs
' à partir d'une propriété
Test(Label1.BackColor.ToKnownColor.ToString, _
Label2.BackColor.ToKnownColor.ToString)
End Sub

Sub Test(Optional ByVal ParaCoul1 As String = "Beige", _
Optional ByVal ParaCoul2 As String = "Black")

' Récupération des paramêtres
' et transformation en couleurs
Dim Coul1 As New Couleur
Dim Coul2 As New Couleur
Coul1=Couleur.FromName(ParaCoul1)
Coul2=Couleur.FromName(ParaCoul2)
..
End Sub
Avatar
Xharkin
Pas de Spam :

bon merci pour les reponses precedente mais ca ne me convient
pas



Avez-vous essayé de passer par le biais du nom des couleurs ?

Par exemple :

Imports Couleur = System.Drawing.Color
..
Sub Appellante()
Test("Blue","Red")
' ou bien si vous récupérez les couleurs
' à partir d'une propriété
Test(Label1.BackColor.ToKnownColor.ToString, _
Label2.BackColor.ToKnownColor.ToString)
End Sub

Sub Test(ByVal ParaCoul1 As String, _
Optional ByVal ParaCoul2 As String = "")

If ParaCoul2 <> "" Then
Label1.BackColor = Couleur.FromName(ParaCoul2)
Test(ParaCoul1)
End If

' Récupération des paramêtres
' et transformation en couleurs
Dim Coul1 As New Couleur
Coul1 = Couleur.FromName(ParaCoul1)
' Suite de la procédure

End Sub
1 2