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

 C Discussion :

Calcul de la taille d'un curseur


Sujet :

C

  1. #1
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 753
    Par défaut Calcul de la taille d'un curseur
    Bonjour à tous,

    Voici ce qui m'amène: je ne parviens pas à calculer la hauteur d'un curseur vertical dans une barre de défilement personnalisée. C'est sans doute idiot, mais je reste bloqué la-dessus.

    Je m'explique: j'ai, par exemple, 200 lignes à afficher à l'écran. La fenêtre disponible pour l'affichage à une hauteur de 15 lignes. Toutes les lignes ont une même hauteur de textHeight pixels. Ma barre de défilement vertical a donc une hauteur de 15*textHeight pixels.

    Et à partir de là, je suis bloqué. Toutes mes tentatives se sont soldées par d'affreux échecs! Je ne parviens pas à déterminer la hauteur du curseur pour que, lorsque je le tire vers le bas, son côté 'bas' arrive en fin de course lorsque la dernière ligne s'affiche. Et inversément, que son côté 'haut' arrive en haut de la barre de défilement lorsque la première ligne arrive à l'écran (après avoir déplacé le curseur, bien entendu).

    Merci d'avance pour vos idées.

    Edgar.

    PS: je travaille avec SDL, et l'api windows n'est pas la bienvenue pour les affichages d'écran !

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    C'est n'est un simple produit en croix ?

    Ton curseur de ta barre de défilement a une taille de x pixels.
    Ta barre de défilement une taille y pixels.

    Tu va donc pouvoir déplacer ton curseur sur y - x pixels.
    A chaque ligne il faudra donc déplacer ton curseur de (y - x)/nbLignes pixels.
    La position du curseur sera donc :
    ( (y - x)/(float)nbLigne ) * numeroLigne + k où k est la position de ta barre de défilement en pixel.

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 753
    Par défaut
    Merci Neckara, mais bouger le curseur et le positionner ne posent aucun problème.

    Je me suis peut-être mal exprimé; le plus simple: regarde ton écran. A droite, tu as en haut et en bas les triangles 'haut' et 'bas', quelque part entre les deux, le curseur. C'est la hauteur de ce curseur que je n'arrive pas à calculer, en fonction du nombre de lignes à afficher et du nombre de lignes affichable. Quand tu déplaces ce curseur avec ta souris, lorsque le bord haut du curseur atteint le triangle 'haut', la première ligne à afficher est affichée, de même vers le bas: quand le bas du curseur atteint le triangle 'bas', la dernière ligne à afficher est affichée.

    Dans mon application, mon curseur est trop 'long', et quand il arrive en haut (ou en bas), la première (dernière) ligne n'est pas affichée.

    Si il y avait 25 messages dans cette discussion (et en fonction de la longueur des messages = nombre de lignes à afficher), le curseur serait plus 'court'.

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Le calcul que je t'ai donné marchera toujours avec n'importe quel taille de curseur.

    Après tu peux en effet faire varier la taille de ton curseur, il suffit juste de modifier le x.

    Après tu peux faire : x = (1(float) / nombreDeLigne ) * tailleBarreDefilement

  5. #5
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 753
    Par défaut
    @Nackara

    Je reprends ce post après bien du temps, mais mon application m'a posé des problèmes bien plus importants qu'un problème d'affichage.

    Merci de m'avoir mis sur la bonne piste, moyennant quelques (mineures) adaptations, ça fonctionne impeccablement.

    Edgar.

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

Discussions similaires

  1. Calcul de la taille d'un répertoire
    Par fdthierry dans le forum Langage
    Réponses: 5
    Dernier message: 07/07/2008, 15h28
  2. Calcul de la taille d'un répertoire
    Par Jexx dans le forum IIS
    Réponses: 3
    Dernier message: 04/04/2007, 08h22
  3. [ASE]Calcul de la taille de mes tables
    Par arona dans le forum Sybase
    Réponses: 6
    Dernier message: 01/09/2006, 15h36
  4. Calcul de la taille d'une variable
    Par bandit boy dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/06/2006, 04h08
  5. Calcul de la taille d'une future base de données
    Par Kuma25 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/08/2005, 09h54

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