Propriété Left limité à 32767

Fermé
jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 - 29 avril 2008 à 22:46
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 29 avril 2008 à 23:42
Bonsoir,

Celà peut paraître singulier, mais dans un Scrollbox je place plein de boutons, malheureusement je manque de place ... car la propriété Left est limitée à 32767. Y'a-t-il un moyen de contourner cette limite ... 
Je pense créer un TMonButton dérivé de TButton en surchargeant la propriété Left, je sais surcharger les procédures, mais peut-on surcharger la propriété Left, enfin changer son type ... à savoir passer de Int à LongInt serait amplement suffisant.   Je sais pas comment on s'y prend.
Mais peut-être y a-t-il une autre solution ... je suis preneur. 
Merci d'avance.

Jean-Michel

3 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
29 avril 2008 à 23:07
32000 pixels et c'est pas suffisant ?
tu peux nous montrer un screen ou il fait 2go le .jpg ? ^^
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 34
29 avril 2008 à 23:28
nan mais a un moment donner faut arreter d'abuser avec ça.

l'utilisateur vas etre perdus dans tout ces boutons a la con.

si on admet que tes boutons font 100 de large, sans espacement ça fait 327 boutons!
c'est du n'importe quoi et en matiere d'ergonomie y'a mieux!

tu peu toujours utiliser une ComboBox ou une ListBox pour gerer ton truc.

Sinon la propriété Left est dependante de TControl (classe de base) et donc c'est TControl qu'il faudrait deriver.
mais le 32767 est la limitation de la zone de dessin. on ne peu aller au dela de l'interval -32768..32767 ... ce qui fait quand même 4 294 967 296 pixels en tout  (limite du LongWord)

donc une zone de dessin equivalente a (en 96ppi : resolution ecran standard) :
17.339x17.339 metres (300m²) 
 961 pouces de diagonale
3 276,8 ecran 1280x1024
qui prend 16 384Mo (16Go) au format RGBA 32bits.

voila pourquoi on ne peu pas modifier cela
voila pourquoi il est inutile de declarer un scanline superieur a [0.65535] ...
voila pourquoi photoshop necessite des PC aussi puissant
voila pourquoi Left et Top ne peuvent depasser -32768..32767

alors pourquoi Left et Top ne sont pas declarer plutot en Word ou SmallInt ...
because Integer est plus performant (puisque CPU 32bits).

0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 34
29 avril 2008 à 23:42
schema pour comprendre :

0
Rejoignez-nous