Salve,
in attesa di consolidare la versione 2.8.00 ho ripreso questa cosa,
nella speranza di poter correggere il comportamento attuale, che non
solo è sbagliato, ma è diverso fra runtime e JXOB (form editing).
Vi riassumo gli estremi del problema, al netto anche delle nuove
indagini:
La runtime interpreta il posizionamento delle sub-form come se fossero
sempre top-left rispetto alla parent-form.
Se la form2 è sub-form della form1, una "left=0" sulla form2 indica
che la sub-form è allineata a sinistra con la form1.
Potete verificare questa cosa cambiando l'allineamento orizzontale di
una sub-form, senza cambiare la sua X: vedrete che la sua posizione (a
runtime) non cambia.
Questo comportamento, così com'è, forse è sbagliato, ma questo è quello
che vedete ora, dato lo stato dei vostri programmi, e, alla fine,
permette comunque di ottenere qualunque effetto di rapporto fra
parent-form e sub-form.
Nel JXOB, invece, regna il caos più totale: si cerca di tenere conto
dell'allineamento delle sub-form, ma si fa confusione fra l'allineamento
della sub-form e quello della parent-form.
In pratica, nel caso di cui sopra, se la form2 ha "align=left" e
"left=0" e la form1 ha allineamento "center", allora la form2 viene
allineata a sinistra rispetto al centro della form1!
Questo comportamento non solo non ha senso, ma non è nemmeno coerente
con quello che vedete a runtime.
Secondo me questa cosa deve essere gestita e risolta, una volta per
tutte, e mi dispiace, in tutto questo tempo, non aver avuto alcun
feedback da parte di Ekovision.
O togliamo la possibilità di utilizzare le sub-form, oppure gli diamo un
senso, coerente fra JXOB e runtime.
Per salvare le sub-form le soluzioni sono due:
1. uniformiamo il comportamento del JXOB a quello della runtime:
quando una form viene impostata come sub-form, allora vengono
bloccati gli allineamenti a "left"/"top" e si intendono relativi
alla form parent;
questa soluzione, per quanto limitante, permetterebbe di salvare il
comportamento attuale dei vostri programmi, senza bisogno di alcun
intervento;
2. correggiamo sia il comportamento della runtime che del JXOB, per
consentire (e rendere coerente) l'impostazione di align anche delle
sub-form:
fondamentalmente questa soluzione non permette di fare niente di più
di quello che è possibile fare con la soluzione 1 ed inoltre
richiederebbe di mettere mano ai (pochi) programmi esistenti che
utilizzano le sub-form.
Fatemi sapere cosa ne pensate, altrimenti procederò con la soluzione 1.
Saluti
--
. Tommaso Vannini
. <
tvan...@janox.it>
. Software analysis & development
. Janox project manager (
www.janox.it)