Propriété Left limité à 32767 [Fermé]

Messages postés
67
Date d'inscription
dimanche 16 octobre 2005
Statut
Membre
Dernière intervention
13 novembre 2009
- - Dernière réponse : f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
- 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
Afficher la suite 

3 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12
0
Merci
32000 pixels et c'est pas suffisant ?
tu peux nous montrer un screen ou il fait 2go le .jpg ? ^^
Commenter la réponse de JulioDelphi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
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).

Commenter la réponse de f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
schema pour comprendre :

Commenter la réponse de f0xi