cs_Cpapy
Messages postés133Date d'inscriptionmercredi 30 octobre 2002StatutMembreDernière intervention25 septembre 2007
-
23 mars 2007 à 12:46
cs_Cpapy
Messages postés133Date d'inscriptionmercredi 30 octobre 2002StatutMembreDernière intervention25 septembre 2007
-
24 mars 2007 à 15:24
Bonjour à tous,
Cette question est relative au MshFlexgrid.
Je souhaiterais connaître la taille d'un Interligne (épaisseur en pixels par exemple)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mars 2007 à 15:51
Ouais...
Ce n'est ni une taille (réservée aux polices) , ni une épaisseur...(qui est tout autre chose)...
C'est tout simplement une dimension d'intervalle...entre deux lignes, exprimée en unités logiques du contexte.
Mais j'attends une réponse à la question essentielle : la seconde.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mars 2007 à 15:51
Ouais...
Ce n'est ni une taille (réservée aux polices) , ni une épaisseur...(qui est tout autre chose)...
C'est tout simplement une dimension d'intervalle...entre deux lignes, exprimée en unités logiques du contexte.
Mais j'attends une réponse à la question essentielle : la seconde.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mars 2007 à 17:43
Bon...
Cete intervalle :
- se mesure de la base d'une ligne à la base de la ligne suivante
- dépend directement de la taille de la police utilisée, mais aussi, hélàs, de la poice elle même
On n'aura ainsi pas le même interligne, pour une même taille (prenons 20) de police, entre la police Arial (interligne de 31 pixels) et Ms Sans Sérif (interligne de 32 pixels) et on obtiendra un interligne de 30 pixels avec la police Small Fonts
Voilà....
Mais je reste persuadé de ce que, si l'on connaissait le but à atteindre, on pourrait chercher une solution meilleure que le calcul de cet intervalle... d'où ma question antérieure...)
cs_Cpapy
Messages postés133Date d'inscriptionmercredi 30 octobre 2002StatutMembreDernière intervention25 septembre 2007 23 mars 2007 à 19:59
Merci déja pour cette réponse. Je complète.
J'ai un MSH avec des tailles de cellules Différentes. Lorsque je déplace ma souris sur le MSH, j'affiche une Textbox qui doit avoir la taille de la cellule sur laquelle elle "repose". A chaque changement de cellule, je dois donc recalculer la taille de ma textbox en utilisant les instructions suivantes qui répondent parfaitement à mon besoin. "Correctif" est une constante correspondant à l'épaisseur d'un interligne.
Je souhaite dans mon programme Calculer la valeur de "Correctif"
Ps. les instructions ci-dessous ont été simplifiées, et réduites. Elles sont là uniquement pour la compréhension. Ne cherchez pas à les décortiquer, ce n'est pas le but de ma question.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mars 2007 à 21:47
Bonsoir,
Je ne travaille jamais avec une MSHFlexGrid mais avec des MSFlfexGrids
Je vais donc avoir besoin de tes réponses :
1) - Quand tu écris : "Lorsque je déplace ma souris sur le MSH" parles-tu boen du seul événement MouseMove (sans donc cliquer) ?
2) si oui : es-tu, lors de cet événement, capable de "relever" à la fois le texte de la cellule et sa police (nom de la police et taille) ?
Si oui : c'est facile ! Si non : ton "correctif" sera très difficile à déterminer pour les raisons que je t'ai déjà exposées.
Si tu me réponds vite, tu auras une réponse immédiate.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 mars 2007 à 23:58
Salut,
Il s' agit en fait de GridLines, jmfmarques, et pas de la hauteur de ligne.
C' est la ligne qui sépare deux cellules ( verticalement et horizentalement)
Elle est de 4 types pour un MsFlexGrid (Aucun,Plat,Incrusté ou Relief).
Toujours est - il que pour chaque type elle est invariablement la même
quelque soit la taille de la police.
Je ne sais pas combien ça mesure, le fait est qu' il suffit de tester
avec différentes valeurs et voir celle qui correspond le mieux à ton
correctif. en tenant compte bien sûr du type choisi.Avec le Plat
c' est comme avec Aucun, et avec Relief n' est pas comme avec l' incrusté...etc
Je crois que ça varie entre 0.2 et 0.5.
Testes avec ces valeurs pour voir.
cs_Cpapy
Messages postés133Date d'inscriptionmercredi 30 octobre 2002StatutMembreDernière intervention25 septembre 2007 24 mars 2007 à 09:56
Enfin quelqu'un qui a compris ma question initiale.
Je te remercie pour cette réponse qui ne répond pas malheureusement à mon besoin car je souhaiterais calculer cette épaisseur.
La raison en est simple, lorsque l'on transporte l'application sur un autre système, les objets qui la composent s'adaptent automatiquement à la résolution de l'écran tout comme l' épaisseur des Gridlines. Il faut donc "Calculer".
Ps: La même question d'épaisseur se pose aussi pour les Textbox, Picturebox, Label Etc.... (# entre la taille avec ou sans bordure) mais ce qui m'intéresse aujourd'hui c'est le Msh.
Merci encore pour ces réponses, en cherchant, vous trouverez certainement la solution
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 mars 2007 à 11:48
Bonjour,
Il s'agit donc non pas de l'interligne mais des traits de séparation... !
Je vérifierai celà cet après-midi, mais il me semble bien que la réponse se trouve dans GetSystemMetrics (examen des valeurs de son unique paramètre... valeurs différentes, si je me rappelle bien, dans le cas de bordures 3D ou "plates")
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 mars 2007 à 13:23
Re...
Bon... moi, j'ai mes réponses, mais elles ne serviront à rien pour ce que veut faire cpapy (s'il veut le faire proprement) !
Il y a 2 épaisseurs possibles, selon le cas : 1 pixel et 3 pixels
A moins de faire du très "à peu près" (ces épaisseurs ne pouvant être modifiées sans toucher aux systemmetrics de la machine-cliente), et de modifier tout le reste (ce qui confèrera un drôle d'aspect au contrôle concerné), cpapy s'en va droit au "casse-pipe".
Si maintenant cpapy accepte d'envisager la possibilité selon laquelle jmf a peut-être vendu octopus.ocx (aujourd'hui dépassé) et sait peut-être alors de quoi il parle :
- ce n'est pas en "redimensionnant" les contrôles et polices que l'on peut valablement atteindre le but qu'il cherche à atteindre, mais bien autrement... et celà demande des heures et des heures de réflexion intense
- on trouve sur le marché, pour des prix oscillant entre une vingtaine d'euros et environ 70 euros (selons les performances) de très bons OCX qui feront tous mille fois mieux que ce qui pourrait être obtenu par un redimensionnement.
Il suffira sans doute de s'interroger sur un seul point (entre autres) : comment modifier l'occupation à l'écran d'un seul pixel, en fonction de la sésolution de l'écran ?
Réponse évidente : mission impossible ! 1 pixel est le 600ème d'un écran dans une résolution et le 1024 ème d'un écran dans une autre résolution. Comment donc faire pour que un 1024ème d'occupation devienne un 600ème d'occupation (ou le contraire) ?
Il faut donc s'y prendre bien autrement (et, en vendant, j'ai également pris l'engagement de ne plus être propriétaire, y compris du code vendu... je ne peux donc iici que guider la réflexion et en suis désolé)
Je laisse maintenant chacun à ses propres réflexions...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 mars 2007 à 15:14
jmf,
excuses moi mais tu t' egares là ...
il cherche tout simplement un indice sur le quel il se baserait
pour calculer son correctif en fonction de la résolution...
et pour quand il passe d' une résolution à une autre il ne serait
pas obliger d' intervenir sur son code.
Il veut éviter par exemple : Correctif= 1 'valeur fixe
Je crois que tu n' as pas bien saisi son but.
Il ne cherche pas à modifier quoi que ce soit.
Son but est de pouvoir définir la largeur et la hauteur de son
TextBox ou je ne sais plus quoi,de telle façon qu' il ne soit pas placé
sur le gridlines et pour ne pas masquer celui-ci. Juste ce qu' il faut pour
être sur le rebord.
Allez reposes-toi , cher ami...
t' as bossé dur cette semaine...