Resize probleempje.

Resizing gaat fout !! Download VB en Download Gupta 6.0

Dit is een VB6 applicatie. Het had net zo goed een Centura / Gupta applicatie kunnen zijn. Daar doet het probleem zich ook voor.

Wat gaat er fout?
In VB6 ging het vooral om een VB6 interne fout waarbij de scrollbars van een array van listboxes niet goed toont.
Daar is een oplossing voor te vinden.
Bij 'oplossing' zie je hoe het fout was.
Secundair worden de windows binnen een MDI scherm niet goed geresized.
Dit is zowel binnen VB6 als Gupta een probleem.

De oorzaak ligt er in dat VB6 gebruik maakt van de rekenkunst van Windows Math routines en Gupta rekent in een eigen inch maat. Maar, Windows kan niet rekenen.
Want hoeveel is 100 / 3 ?. Juist : 33,333333 repetent.
En hoeveel is dat als je dat weer met 3 vermenigvuldigt?. Juist. 99,999999999 repetent.
ennuh: 101/3 ?. Dat is vermenigvuldigd met 3 dus groter dan 100.
Bij Gupta is het nog erger, die rond de inches af en telt er soms ook weer wat bij.
En wat doet Gupta MDI en VB6 MDI (Allebei de Windows MDI) als de onderliggende windows buiten de 100% van het MDI scherm uitkomen? >>Bingo: een scrollbar<<

Ooit bij een opdracht voor Interpolis heb ik een klas vol met net ICT afgestudeerde broekjes een maand lang kunnen bezighouden met een heel eenvoudig probleem.
Als ik aan premie Euro 100 ontvang op kwartaal basis, hoe verdeel ik dit bedrag over de drie maanden op een dusdanige wijze dat de verdeling wiskundig correct is.
Maar ik wil het wetenschappelijk bewijs dat de formule klopt.

Waar blijft nu die ene cent?

En als het nu Euro 100,01 is? Waar blijven dan die twee centen.
En als het nu 7 maanden zijn? Of .......... Bedenk maar wat.

Dit zelfde probleem is ook het onderliggend probleem van window resizing op een MDI.
Dus als je windows goed wilt resizen moet je de wiskundig correcte formule toepassen die ook nog eens op een windows correcte manier rekent.

Vink in de resize.exe de oplossing aan en resize dan het mdi scherm.
Als je nu goed kijkt dan zie je dat ik een freubel oplossing heb gekozen.
Het lijkt opgelost. Maar het is het niet.
Dit is de valkuil voor veel oplossingen.

Neem een ander OS. Dan kan het zomaar zijn dat alle resize problemen zomaar terugkomen.
Binnen een andere versie van het OS kan het zomaar voorkomen dat de MDI een ander aantal pixels te verdelen heeft.


De echte oplossing: Als je bij resizen aan de buitenzijde van het meest rechtse window een stabiele opbouw van het scherm ziet dan is kennelijk voor het resizen de wiskundig correcte formule toegepast. (juiste vinkje)


Voor diegene die Gupta 6.0 hebben: ResizeG1.apt. Het source.