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 :

[D7][Trackbar] reglage du trackbar par pas de x avec la souris?


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 160
    Points : 167
    Points
    167
    Par défaut [D7][Trackbar] reglage du trackbar par pas de x avec la souris?
    Bonjour (rebonjour),
    bon je me rend compte qu'il ya des composants dans delphi que je n'ai jamais utiliser et qui me donnent du fil a retordre.

    C'est le cas du TtrackBar. J'imagine que la simplicité de la solution va encore me blaster.

    La premiere question est simple...
    Admettons que mon Trackbar min soit à 0 et mon trackbar max soit à 1000.

    Je veux faire bouger mon curseur par pas de 10.

    [petit EDIT pour etre plus clair] ---> je veux dire quand on le fait bouger avec la souris

    Comment faire?

    Aujourd'hui j'ai creer un objet newtrackbar qui herite de Ttrackbar dans lequel j'implemente un onmouseover.

    Dans cet event je stoque l'ancienne position puis dans le onchange je fait des trucs du genre newtrackbar.position:=old_pos+10 etc...

    Mais bon c'est cracra...

    Je suis sur que vous connaissez la facon de faire qui va bien.

    /!\ ATTENTION A LA QUESTION SUIVANTE C'EST PLUS TRASH

    Bon la trackbar ne peut adresser qu'un integer... min et max sont des integer (voila ca que je voulais dire)...

    Vous pensez qu'on peut facilement transformer ca en int64?

    En fait l'étendue de la trackbar de base n'est pas assez grande pour ce que je veux faire.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Pour la première question , c'est facile : tu mets la propriété PageSize à 10 (ou un multiple de 10) et dans le code de l'événement OnChange il te suffit de forcer la position à un multiple de 10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.TrackBar1Change(Sender: TObject);
    begin
      TrackBar1.Position:= (Trackbar1.Position div 10) * 10;
    end;
    La deuxième question n'a aucun sens. Si l'étendue de la trackbar ne te suffit pas, il te faut multiplier sa position par un facteur qui te convient. Exemple : tu mets le max de la trackbar à 100 et tu multiplies la valeur de position par 1000. Ainsi tu obtiens des valeurs comprises entre 0 et 100000 avec un contrôle qui reste utilisable.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 160
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par Pierre Castelain
    Pour la première question , c'est facile : tu mets la propriété PageSize à 10 (ou un multiple de 10) et dans le code de l'événement OnChange il te suffit de forcer la position à un multiple de 10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.TrackBar1Change(Sender: TObject);
    begin
      TrackBar1.Position:= (Trackbar1.Position div 10) * 10;
    end;
    La deuxième question n'a aucun sens. Si l'étendue de la trackbar ne te suffit pas, il te faut multiplier sa position par un facteur qui te convient. Exemple : tu mets le max de la trackbar à 100 et tu multiplies la valeur de position par 1000. Ainsi tu obtiens des valeurs comprises entre 0 et 100000 avec un contrôle qui reste utilisable.
    Merci pour ta réponse.
    Je suis un peu fatigué mais je vais essayer d'etre plus clair.

    Je souhaite avoir un track bar qui va de 0 à 2^48 par pas de 4096.
    Si je mets un facteur sur ma trackbar (tu me dits si je me trompe je vais perdre en résolution)

    P.S. Je confuse peut etre mais je manque de sommeil.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 160
    Points : 167
    Points
    167
    Par défaut
    de toute facon je confuse et tu as raison ma question n'a aucun sens.

    Ce que je cherche a faire est tout simplement impossible.

    Je veux deplacer à la souris un curseur qui va de 0 à 2^48 par pas de 4096.
    Et comme je sous entendais un pas =1 pixel... donc 4096 unités = 1pixel... Je viens de m'appercevoir de l'incroyable nullllllité de mon raisonnement.

    Imaginons la taille de l'écran... il faudrait à la grosse louche environ 70000000000 de pixels en largeur pour atteindre la resolution que je cherche.
    Bref je veux réaliser l'impossible et je n'y arriverais pas.
    Voilà ce qui arrive quand on ne reflechit pas avant, on dit a quelqu'un "je vais vous faire ca" alors que c'est inimaginable.

    Je suis un pitre!

  5. #5
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Mais si tu peux (ouais, je sais, je suis trash ) !
    Mais pas avec une seule trackbar...

    pour compter de 0 à 10000 :
    - tu as combien de chiffres ? =>10 (0,1,2,3,4,5,6,7,8,9)
    - tu as combien de digit ? 5

    En gros, pour imager, c'est comme si tu avais 5 trackbars de 10 pixels de large... et non une seule de 10000 pixels...

    Sauf que tu as une trackbar où chaque pixel vaut 1, une autre où chaque pixel vaut 10, une autre où chaque pixel vaut 100, etc...

    vois-tu où je veux en venir ?


    Bref, l'idée c'est d'avoir plusieurs trackbar, une qui va par tranche de 1 mais ou chaque tranche vaut 4096, l'autre par tranche de 1 mais ou chaque tranche vaut 4096*4096, etc...
    Bidouilleuse Delphi

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 160
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par waskol
    vois-tu où je veux en venir
    Oui c'est ce que je voulais faire mais la personne qui m'a passé commande ne veut qu'un trackbar.

    Alors je dis: soit perte de résolution...
    Soit...

    Grooooosssssssseeeeee dalle pour l'ecran et eventuellement une grand salle pour avoir assez de recul ou...

    Un systeme de scrolling de la trackbar (mais là c'est non!)

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par darkvadr
    Oui c'est ce que je voulais faire mais la personne qui m'a passé commande ne veut qu'un trackbar.
    Lui as tu expliqué que c'était comme vouloir mettre l'océan atlantique dans une canette de coca ?
    parce que de 0 à 2^48...

    Citation Envoyé par darkvadr
    Alors je dis: soit perte de résolution...
    Soit...

    Grooooosssssssseeeeee dalle pour l'ecran et eventuellement une grand salle pour avoir assez de recul ou...

    Citation Envoyé par darkvadr
    Un systeme de scrolling de la trackbar (mais là c'est non!)
    Attends !!!!!!!!!!!!!!!!!!
    chez TMS, ils en ont pas dans ceux-là ?
    http://www.tmssoftware.com/tiw.htm


    Ou je ne sais pas sinon... propose lui un spinedit, à la place
    Bidouilleuse Delphi

  8. #8
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    salut , une idée me passe par le tête ( oui c'est çà arrive aussi lol )

    As tu pensé à essayer un trackbar dynamique, qui changerai son rapport d'echelle quand tu cliques dessus. un peu comme un zoom, ou une loupe l'on promenerai sur une régle pour en lire les graduations..

    tu aurai au depart un trackbar en fonction de la definition de ton ecran, et quand tu cliques avec le bouton droit de la souris sur le tackbar, tu redefini l'echelle de ce dernier et cela jusqu'a la resolution voulu. un click gauche de la souris sur le trackbar selectionne la bonne valeur.

    par contre au niveau visualiation de la valeur çà ne peut etre qu'approximatif, mais un hint ou autre controle peut afficher la valeur reelle.

    enfin c'est juste une idée ...
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 160
    Points : 167
    Points
    167
    Par défaut
    Bon merci pour toutes ces idées.

    Alors voilà ce que j'ai fait: Un trackBar avec un pas beaucoup plus grand.
    Et un spinbutton par pas de 4096.

    Et puis voilà...

    TMS c'est super beau les comosants... whaaaa... y'en a des qui se prennent la tete (<--je sais que ce n'est pas francais!).

    En tout cas merci... Toutes vos idées sont bonnes et il fallait en choisisr une... Ce fut le Spinbutton pour les petits pas et la trackbar pour les gros pas.

    Bon sinon he he he je vais poser une autre question sur la Tstringgrid.... Un probleme qui m'enerve...

    Je vous attend là bas les 'tit loulou...

    Flag resolu?
    Allez on peut le dire.

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

Discussions similaires

  1. Requête par adresse, pas de résultat avec certains caractères accentués
    Par sylvaingeo dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 18/09/2012, 12h37
  2. [XL-2007] excuter une macro pas par pas
    Par iliesss dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2011, 10h02
  3. Pas d'affichage avec l'appel des pages par include
    Par jlb59 dans le forum Langage
    Réponses: 4
    Dernier message: 22/05/2011, 13h33
  4. Trier par pas de 50
    Par rabia dans le forum Excel
    Réponses: 1
    Dernier message: 28/01/2010, 19h04
  5. Comment incrémenter une date par pas du Mois ?
    Par tarbala dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/11/2008, 06h16

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