PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Assemblage dotnet zedgaph: Récupérer les points
Assemblage dotnet zedgaph: Récupérer les points
Débuté par titioun, 12 nov. 2017 11:18 - 7 réponses
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 12 novembre 2017 - 11:18
Bonjour,

j'ai une nouvelle appli dans laquelle je dois récupérer la liste des points sélectionnés par l’utilisateur sur un graphe XY construit à l'aide de l'assemblage .net zedgraph.

En pratique je souhaite récupérer 2 points sur la courbe pour pouvoir programmer un fit linéaire entre ces points.

Un fois les points récupérés il me faudra extraire de la PointpairList associée à la courbe l'ensemble des points .

Dans un premier temps j'aimerais capter l’événement qui permet de visualiser la valeur du point affiché par Zedgraph.
Zedgraph contient un "ZedGraphControl.PointValueHandler"

Dans le menu contextuel inclus dans l'assemblage, il y a une option Show point value

Lorsqu'on clique sur un point du graphe les valeurs sont affichées dans une petite boite de message.

Voilà à quoi devrait ressembler, je pense, la méthode :
zedGraph.PointValueEvent += new ZedGraphControl.PointValueHandler(OnPointValueEvent);
string OnPointValueEvent(ZedGraphControl sender, GraphPane pane, CurveItem curve, int iPt)
{
GraphPane p = zedGraph.GraphPane;
string name = curve.Label.Text;
string xfmt = curve.GetXAxis(p).Scale.Format;
string yfmt = curve.GetYAxis(p).Scale.Format;
PointPair pt = curve[iPt];
XDate WHEN = new XDate(pt.Y);
RETURN string.Format("{0}: ({1}, {2})", name, WHEN.ToString(yfmt), pt.X.ToString(xfmt));
}


Pouvez-vous m'aider à traduire ce code svp

Merci.
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 18 novembre 2017 - 17:10
Bonjour

Je remonte ce post.

Je n'ai pas réussi à m'en sortir aussi je fais à nouveau appel à vous.

Comme ce point m'apporterait une aide précieuse je recherche un prestataire qui pourrait m'aider à réaliser cette étape.

Merci de vous faire connaitre si cela vous intéresse

Cordialement
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 24 novembre 2017 - 08:49
Bonjour,

pas d'amateur ?

Merci de vous faire connaître.
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 24 novembre 2017 - 16:56
hello,
il y a un souci avec l'événement que tu veux utiliser. C'est qu'il envoie en série des données dès que tu passes à proximité du point et pas quand tu cliques dessus.

--
Ami calmant, J.P
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 27 novembre 2017 - 12:56
Bonjour JP,

j'avoue que je comptais un peu sur ton aide car tu m'as déjà fait avancer à de nombreuses reprises sur Zedgraph.

Du coup pas de solution possible ?

Même dans le cadre dune prestation ?

Cordialement
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 27 novembre 2017 - 17:15
hello,
tu as de la chance j'ai retrouvé un bout de code qui devrait t'être utile.
j'utilise l'événement MouseClick de Zedgraph pour tracer les coordonnées X, Y quand on clique à proximité d'un point.
L'activation du code sur click souris :
MonGraphe.add_MouseClick(DotNetDélégué("ZedClick","MouseEventHandler"))


La procédure ZedClick :
Procedure ZedClick(sender, e est un MouseEventArgs)
idx est un entier
clickedPoint est un PointF(e.X, e.Y)
Curve est un CurveItem dynamique = MonGraphe.GraphPane.CurveList.get_Item("Mesures")
QUAND EXCEPTIONEXCEPTION DANS
res est un booléen = MonGraphe.GraphPane.FindNearestPoint(clickedPoint,Curve,idx)
pt est un PointPair dynamique = Curve.get_item(idx)
Trace(pt.X,pt.Y)
FAIRE
Trace("erreur")
FIN


--
Ami calmant, J.P
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 29 novembre 2017 - 08:40
Trop fort.

Merci encore.
Membre enregistré
92 messages
Popularité : +2 (2 votes)
Posté le 29 novembre 2017 - 09:17
Du coup, je me suis fendu d'un petit CrossHair

QUAND EXCEPTIONEXCEPTION DANS
res est un booléen = FEN_Main.MonGraphe.GraphPane.FindNearestPoint(clickedPoint,Curve,idx)
pt est un PointPair dynamique = Curve.get_item(idx)
//Trace(pt.X,pt.Y)
x,y sont des réels
x = pt.X
y = pt.Y
xHair est un LineObj dynamique
xHair = new LineObj(FEN_Main.MonGraphe.GraphPane.XAxis.Scale.Min, y, FEN_Main.MonGraphe.GraphPane.XAxis.Scale.Max, y)
yHair est un LineObj dynamique
yHair = new LineObj(x, FEN_Main.MonGraphe.GraphPane.YAxis.Scale.Min, x, FEN_Main.MonGraphe.GraphPane.YAxis.Scale.Max)
FEN_Main.MonGraphe.GraphPane.GraphObjList.Add(xHair)
FEN_Main.MonGraphe.GraphPane.GraphObjList.Add(yHair)

FEN_Main.MonGraphe.Refresh()
FAIRE






Merci encore