Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD9] Assemblage .NET ZedGraph

5 réponses
Avatar
Fred
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages .NET,
j'en viens à vous pour vous demander de l'aide. J'ai importé un assemblage
.NET (ZedGraph.DLL) qui permet de construire des graphiques. En me servant
du code source C#, j'ai réussi à créer l'objet, à insérer une courbe via une
des propiétés de la classe, tout ça sous Windev sans bug. Ceci dit,
maintenant qu'il est créé comment puis-je faire pour l'insérer dans un champ
Image par exemple ? D'après le code source C#, on doit utiliser la classe
Controls avec la propriété Add pour ajouter cet objet à la fenêtre. Le
problème est que la classe Controls n'est pas disponible dans la liste des
Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une solution
sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà un
plus, mais il semblerait qu'ils aient bien ciblé leurs exemples, exemple
fonctionnel et utilisation des classes les plus communes.

5 réponses

Avatar
stef
Fred a écrit :
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages .NET,
j'en viens à vous pour vous demander de l'aide. J'ai importé un assemblage
.NET (ZedGraph.DLL) qui permet de construire des graphiques. En me servant
du code source C#, j'ai réussi à créer l'objet, à insérer une courbe via une
des propiétés de la classe, tout ça sous Windev sans bug. Ceci dit,
maintenant qu'il est créé comment puis-je faire pour l'insérer dans un champ
Image par exemple ? D'après le code source C#, on doit utiliser la classe
Controls avec la propriété Add pour ajouter cet objet à la fenêtre. Le
problème est que la classe Controls n'est pas disponible dans la liste des
Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une solution
sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà un
plus, mais il semblerait qu'ils aient bien ciblé leurs exemples, exemple
fonctionnel et utilisation des classes les plus communes.




Il faut que tu récuperes le handle d'une image sous Windev via la
fonction Handle(<NomImage>), puis que tu utilises ce handle pour créer
une classe dotnet Graphics.

J'ai fait le test ca marche nickel. Je te poste le code d'initialisation
lundi soir (il est au boulot).
Avatar
Fred
Merci beaucoup Stef ! Il me tarde de voir le résultat. Ce qui m'étonne le
plus c'est que le Support PC Soft a été incapable de répondre à la question.
:-)

GG&HF

"stef" a écrit dans le message de news:
4257b8dc$0$822$
Fred a écrit :
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages
.NET, j'en viens à vous pour vous demander de l'aide. J'ai importé un
assemblage .NET (ZedGraph.DLL) qui permet de construire des graphiques.
En me servant du code source C#, j'ai réussi à créer l'objet, à insérer
une courbe via une des propiétés de la classe, tout ça sous Windev sans
bug. Ceci dit, maintenant qu'il est créé comment puis-je faire pour
l'insérer dans un champ Image par exemple ? D'après le code source C#, on
doit utiliser la classe Controls avec la propriété Add pour ajouter cet
objet à la fenêtre. Le problème est que la classe Controls n'est pas
disponible dans la liste des Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une
solution sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà
un plus, mais il semblerait qu'ils aient bien ciblé leurs exemples,
exemple fonctionnel et utilisation des classes les plus communes.




Il faut que tu récuperes le handle d'une image sous Windev via la fonction
Handle(<NomImage>), puis que tu utilises ce handle pour créer une classe
dotnet Graphics.

J'ai fait le test ca marche nickel. Je te poste le code d'initialisation
lundi soir (il est au boulot).



Avatar
Fred
Pour ceux que ça intéresse :

hndGraphe est un entier = Handle(IMG_GRAPHE) // Récupération du Handle de
mon champ Image

z1:GraphPane:Draw(Graphics::FromHwndInternal(hndGraphe)) // z1 est un
ZedGraphControl



"Fred" a écrit dans le message de news:
d35qj0$f9g$
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages
.NET, j'en viens à vous pour vous demander de l'aide. J'ai importé un
assemblage .NET (ZedGraph.DLL) qui permet de construire des graphiques. En
me servant du code source C#, j'ai réussi à créer l'objet, à insérer une
courbe via une des propiétés de la classe, tout ça sous Windev sans bug.
Ceci dit, maintenant qu'il est créé comment puis-je faire pour l'insérer
dans un champ Image par exemple ? D'après le code source C#, on doit
utiliser la classe Controls avec la propriété Add pour ajouter cet objet à
la fenêtre. Le problème est que la classe Controls n'est pas disponible
dans la liste des Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une
solution sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà
un plus, mais il semblerait qu'ils aient bien ciblé leurs exemples,
exemple fonctionnel et utilisation des classes les plus communes.




Avatar
stef
Fred a écrit :
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages .NET,
j'en viens à vous pour vous demander de l'aide. J'ai importé un assemblage
.NET (ZedGraph.DLL) qui permet de construire des graphiques. En me servant
du code source C#, j'ai réussi à créer l'objet, à insérer une courbe via une
des propiétés de la classe, tout ça sous Windev sans bug. Ceci dit,
maintenant qu'il est créé comment puis-je faire pour l'insérer dans un champ
Image par exemple ? D'après le code source C#, on doit utiliser la classe
Controls avec la propriété Add pour ajouter cet objet à la fenêtre. Le
problème est que la classe Controls n'est pas disponible dans la liste des
Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une solution
sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà un
plus, mais il semblerait qu'ils aient bien ciblé leurs exemples, exemple
fonctionnel et utilisation des classes les plus communes.






Voici le code pour utiliser la ZedGraph librairie


Il faut ajouter les assemblages .net suivant :

system.Dawing
mscorlib
ZedGraph



//Declarer en globale
GraphRes est un objet GraphPane dynamique
gRes est un objet Graphics dynamique

// Declarer dans le code d'initialisation d'une image
list1 est un objet PointPairList dynamique
list2 est un objet PointPairList dynamique
TailleRect est un objet RectangleF dynamique
i est un entier
x,y sont des réels

list1 = allouer PointPairList()
list2 = allouer PointPairList()

TailleRect = allouer RectangleF(0,0,MoiMême..Largeur, MoiMême..Hauteur)
GraphRes = allouer GraphPane(TailleRect,"","","")

gRes = GraphResics::FromHwnd(Handle(MoiMême))

GraphRes:Title = "Graphique"
GraphRes:XAxis:Title = "Temps"
GraphRes:YAxis:Title = "Pression"
GraphRes:Y2Axis:Title = "Température"

POUR i=0 A 36
x = i +5
y = 1.5 + Sinus(i*36)
list1:Add(x,y)
list2:Add(x,y*3)
FIN

GraphRes:Legend:IsVisible = True;

Courbe = GraphRes:AddCurve("Courbe Pression", list1, Color::Red,
SymbolType::Circle)
Courbe:Line:Width = 1.5
Courbe:Symbol:Fill = allouer Fill(Color::White)
Courbe:Symbol:Size = 5

Courbe = GraphRes:AddCurve("Courbe Température", list2, Color::Blue,
SymbolType::Circle)
Courbe:Line:Width = 1.5
Courbe:Symbol:Fill = allouer Fill(Color::White)
Courbe:Symbol:Size = 5
Courbe:IsY2Axis = True



GraphRes:YAxis:ScaleFontSpec:FontColor = Color::Red
GraphRes:YAxis:TitleFontSpec:FontColor = Color::Red
GraphRes:Y2Axis:IsVisible = True
GraphRes:Y2Axis:ScaleFontSpec:FontColor = Color::Blue
GraphRes:Y2Axis:TitleFontSpec:FontColor = Color::Blue
GraphRes:Y2Axis:IsShowGrid = True

GraphRes:XAxis:IsShowGrid = True
//GraphRes:YAxis:IsShowGrid = true
GraphRes:XAxis:BaseTic = 10
GraphRes:AxisFill = allouer Fill(Color::White, Color::SteelBlue, 45.0)

GraphRes:AxisChange( gRes )
GraphRes:Draw(gRes)

// Pour dessiner le graph tu dois appeler la méthode
GraphRes :Draw(gRes)

a+
Stef
Avatar
Fred
Merci beaucoup Stef !

Un complément pour mes futurs graphes ! Je vois que tu as bien étudié la DLL
aussi ! ;-)



"stef" a écrit dans le message de news:
425aad76$0$23124$
Fred a écrit :
Bonjour !

Après des heures et des heures de prises de têtes sur les assemblages
.NET, j'en viens à vous pour vous demander de l'aide. J'ai importé un
assemblage .NET (ZedGraph.DLL) qui permet de construire des graphiques.
En me servant du code source C#, j'ai réussi à créer l'objet, à insérer
une courbe via une des propiétés de la classe, tout ça sous Windev sans
bug. Ceci dit, maintenant qu'il est créé comment puis-je faire pour
l'insérer dans un champ Image par exemple ? D'après le code source C#, on
doit utiliser la classe Controls avec la propriété Add pour ajouter cet
objet à la fenêtre. Le problème est que la classe Controls n'est pas
disponible dans la liste des Assemblages .NET.

Que faire ? Passer au C# et laisser tomber Windev, ou y-a-t-il une
solution sous Windev ?

Merci d'avance pour vos réponses.

P.S. : Je suis vraiment preneur de toute information à ce sujet. Les
exemples d'utilisation des Assemblages .NET livrés avec la LST sont déjà
un plus, mais il semblerait qu'ils aient bien ciblé leurs exemples,
exemple fonctionnel et utilisation des classes les plus communes.






Voici le code pour utiliser la ZedGraph librairie


Il faut ajouter les assemblages .net suivant :

system.Dawing
mscorlib
ZedGraph



//Declarer en globale
GraphRes est un objet GraphPane dynamique
gRes est un objet Graphics dynamique

// Declarer dans le code d'initialisation d'une image
list1 est un objet PointPairList dynamique
list2 est un objet PointPairList dynamique
TailleRect est un objet RectangleF dynamique
i est un entier
x,y sont des réels

list1 = allouer PointPairList()
list2 = allouer PointPairList()

TailleRect = allouer RectangleF(0,0,MoiMême..Largeur, MoiMême..Hauteur)
GraphRes = allouer GraphPane(TailleRect,"","","")

gRes = GraphResics::FromHwnd(Handle(MoiMême))

GraphRes:Title = "Graphique"
GraphRes:XAxis:Title = "Temps"
GraphRes:YAxis:Title = "Pression"
GraphRes:Y2Axis:Title = "Température"

POUR i=0 A 36
x = i +5
y = 1.5 + Sinus(i*36)
list1:Add(x,y)
list2:Add(x,y*3)
FIN

GraphRes:Legend:IsVisible = True;

Courbe = GraphRes:AddCurve("Courbe Pression", list1, Color::Red,
SymbolType::Circle)
Courbe:Line:Width = 1.5
Courbe:Symbol:Fill = allouer Fill(Color::White)
Courbe:Symbol:Size = 5

Courbe = GraphRes:AddCurve("Courbe Température", list2, Color::Blue,
SymbolType::Circle)
Courbe:Line:Width = 1.5
Courbe:Symbol:Fill = allouer Fill(Color::White)
Courbe:Symbol:Size = 5
Courbe:IsY2Axis = True



GraphRes:YAxis:ScaleFontSpec:FontColor = Color::Red
GraphRes:YAxis:TitleFontSpec:FontColor = Color::Red
GraphRes:Y2Axis:IsVisible = True
GraphRes:Y2Axis:ScaleFontSpec:FontColor = Color::Blue
GraphRes:Y2Axis:TitleFontSpec:FontColor = Color::Blue
GraphRes:Y2Axis:IsShowGrid = True

GraphRes:XAxis:IsShowGrid = True
//GraphRes:YAxis:IsShowGrid = true
GraphRes:XAxis:BaseTic = 10
GraphRes:AxisFill = allouer Fill(Color::White, Color::SteelBlue, 45.0)

GraphRes:AxisChange( gRes )
GraphRes:Draw(gRes)

// Pour dessiner le graph tu dois appeler la méthode
GraphRes :Draw(gRes)

a+
Stef