IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

drag and drop barseries un tchart


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Par défaut drag and drop barseries un tchart
    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

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    @+ Claudius

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Par défaut
    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 ?

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Par défaut
    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

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par m.nico
    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 ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Par défaut
    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

  8. #8
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Tu peux récupérer les valeurs X et Y qui sont sous le curseur ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var
      tmpX, tmpY: Double;
    begin
      Series1.GetCursorValues(tmpX, tmpY);
    end;
    @+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Par défaut
    bonjour

    exactement ce que je voulais faire

    je te remecie

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 11h10
  2. "Drag and drop" avec directinput
    Par batosai dans le forum DirectX
    Réponses: 1
    Dernier message: 16/06/2004, 17h48
  3. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 15h50
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 18h36
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo