Skip to content

Utilizzare i file type e i container control

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.