Saluti a tutti voi, sono una new entry di questo blog.
Ecco in breve la mia storia: 10 anni fa acquistai una licenza Real Studio Professional Edition per Mac che mi permise di sviluppare alcune applicazioni desktop. Pur essendo un neofita, grazie al supporto che ebbi da Omnidea, la societ che allora distribuiva Real Studio in Italia, riuscii a realizzare le mie applicazioni. Dopodich, mi sono occupato di altri settori ed abbandonai completamente lattivit di programmazione. Ora, dopo 10 anni, ho ripreso a sviluppare alcune applicazione, ma mi sono subito reso conto di avere enormi lacune rispetto alle possibilit offerte da Xojo.
Il mio problema attuale riguarda il ridimensionamento delle finestre Window. Chiaramente, quando si variano le dimensioni di partenza di una window, tutti i controlli in essa contenuti, la loro posizione nella window e le dimensioni del testo devono essere proporzionalmente ridimensionati. Attraverso semplici istruzioni inserite nella Action di un Timer, sono gi riuscito ottenere i fattori di correzione Wr = with / with-iniziale ed Hr= Height / Height-iniziale.
Con questi due fattori di correzione si possono modificare i valori degli controlli, ad esempio “BevelButton1.width” diventa “BevelButton1.width*Wr” e cos per tutti i valori e per tutti i controlli contenuti nella window.
La Window ridimensionatile l’ho gi sviluppata nella mia ultima applicazione e funziona perfettamente, solo che ho dovuto inserire i fattori di correzione Wr e Hr manualmente in tutti i controlli della mia Window che, nella mia ultima applicazione sono circa 160 tra TextFiel, BevelButton, Canvas, Label, ecc. Un lavoro assurdo che vorrei rendere automatico, in modo da poterlo utilizzare in tutte le mie future applicazioni.
Vengo al dunque, ho trovato nella documentazione Xojo il seguente esempio che ho trovato utile:
dim c As Control
dim x as integer
For x = 0 To Self.ControlCount - 1 step 1
c = Window.Control(x)
dim N as string = c.name
next
Ho verificato che questa routine restituisce il numero dei controlli esistenti nella Window ed il “Name” ciascuno di essi. Poich, oltre al “Name” del controllo, ho bisogno di ottenere anche “Width”, “Height”, “Left”, “Top” e “textsize” dei controlli, mi sono illuso di potere ottenere facilmente questi valori, dichiarando:
dim Width as integer = c.width
dim Height as integer = c.height
dim Top as integer = c.top
dim Left as integer = c.left
Neanche per idea, , esce fatalmente il messaggio di errore: “Questo metodo o propriet non esiste”
Ho tentato in ogni modo superare queste limitazioni, ma non ci sono riuscito e confido che qualcuno di voi mi possa darmi una mano per risolvere il problema.
Mi rammarico solo di non potere al momento contraccambiare perch, come ho potuto verificare sfogliando il blog, sono troppo scarso rispetto al vostro livello di conoscenza di Xojo.
Vi ringrazio per laiuto che vorrete darmi