Due elementi di Xojo che aiutano a semplificare lo sviluppo: i Container Control ed i FileTypes.
Spesso utiliziamo dei controlli che hanno lo stesso significato e lo stesso comportamento in diverse parti dell’applicazione o anche in diverse applicazioni. Per avere un approccio più OOP abbiamo a disposizione in Xojo i ContainerControl che sono in tutto e per tutto delle porzioni di finestra in cui possiamo inserire i nostri controlli, i metodi per gestirli e anche definire degli eventi per poterli poi utilizzare come veri e propri oggetti all’interno delle finestre. Analoghi elementi sono presenti nei progetti Web e iOS.
I FileTypes sono, invece, oggetti per gestire semplicemente i file che un’applicazione è in grado di leggere e/o scrivere. Definendo questo tipo di oggetto è semplice espandere l’applicazione senza dover andare a riscrivere il codice, ma solo espandendo i tipi di file accettati e, eventualmente, le routine per la gestione specifica.
In questo video vediamo inizialmente come realizzare una semplice gestione dei file che vengono trascinati nella finestra, inserendo nel codice dell’evento DropObject:
//Se esiste un oggetto trascinato relativo ad un file //La nostra applicazione gestisce i file testo semplice e le immagini di tipo // jpg e png. Questi tipi sono definiti nell'oggetto FileDaLeggere if obj.FolderItemAvailable then //Definiamo una variable per indicare che il file è gestibile Dim ok as Boolean //Verifichiamo in base alla proprietà Type del file Select Case obj.FolderItem.Type case FileDaLeggere.Jpeg.Name, FileDaLeggere.Png.Name //Il file è di tipo immagine tra quelli previsti ok=true case FileDaLeggere.Text.Name //Il file è di tipo testo, lo possiamo interpretare ok=true End Select //Nella label fileInfo mostro, se il file è riconosciuto, le info del file //altrimenti un messaggio di errore if ok then fileInfo.Text = obj.FolderItem.Name + "(" + obj.FolderItem.Type+ ")" else fileInfo.Text = obj.FolderItem.Name + " Non riconosciuto" end if end if |
In seguito viene reso più sofisticato il metodo in modo da istanziare il corretto ContainerControl per il tipo di file trascinato e visualizzarne quindi il contenuto.
Questo permette di avere una singola finestra per gestire i diversi tipi di file e adattarne il conentuto in base alle esigenze dell’utente. Il tutto con poche righe di codice.