jnmchl
Messages postés63Date d'inscriptiondimanche 16 octobre 2005StatutMembreDernière intervention13 novembre 2009
-
29 avril 2008 à 22:46
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 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.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 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).