bonjour
avec le composant tchart je dessine un histogramme
je voulais savoire si quelqu un sais effectuer un drag and drop d une valeur d une barre vers une autre barre de l'histogramme ?
en esperant avoir etait clair
merci
Version imprimable
bonjour
avec le composant tchart je dessine un histogramme
je voulais savoire si quelqu un sais effectuer un drag and drop d une valeur d une barre vers une autre barre de l'histogramme ?
en esperant avoir etait clair
merci
Salut
Tu peux coder quelque chose dans le genre:
La propriété DragMode du TChart est à dmAutomatic. La valeur de la barre de départ écrase simplement la valeur de la barre de destination.
@+ ClaudiusCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 var FStartIdx: Integer; FStartValue: Double; procedure TForm1.Chart1StartDrag(Sender: TObject; var DragObject: TDragObject); begin with Series1 do begin FStartIdx := GetCursorValueIndex; if FStartIdx = -1 then Exit; FStartValue := YValues[FStartIdx]; end; end; procedure TForm1.Chart1DragDrop(Sender, Source: TObject; X, Y: Integer); var DropIdx: Integer; begin with Series1 do begin DropIdx := GetCursorValueIndex; if DropIdx = -1 then Exit; YValues[DropIdx] := FStartValue; end; end; procedure TForm1.Chart1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var OverIdx: Integer; begin with Series1 do begin OverIdx := GetCursorValueIndex; Accept := (OverIdx <> -1) and (FStartIdx <> -1) and (OverIdx <> FStartIdx); end; end; procedure TForm1.Chart1EndDrag(Sender, Target: TObject; X, Y: Integer); begin Chart1.Refresh; end;
merci claudius
ton code marche sauf que lorsque je place mon curseur trops pres du haut de la barree ou si ma barre est trops petite : pas de drag ou de drop
autrait tu une idee ?
Re,
Si ton histogramme est en 3D, le drag'n'drop s'effectuera uniquement si tu places ton curseur sur la face avant d'une barre.
C'est la condition sine qua none pour que GetCursorValueIndex renvoie une valeur différente de -1.
@+ Claudius
merci j etAis en 3D cela marche parfaitement bien
autre chose
je voudrais que le "FStartValue" la valeur de la source depende de la position
du curseur au start drag
C'est à dire ? En fonction de son ordonnée ?Citation:
Envoyé par m.nico
imaginons que je place mon cuseur a la motie du barseries je voudrais que "FStartValue" la valeur de la source soit de la moitie de la valeur de la bar selectionne
en esperant avoir ete clair
Tu peux récupérer les valeurs X et Y qui sont sous le curseur ainsi:
@+Code:
1
2
3
4
5
6 var tmpX, tmpY: Double; begin Series1.GetCursorValues(tmpX, tmpY); end;
bonjour
exactement ce que je voulais faire
je te remecie
@+