Ciao a tutti
perche questo codice mi funziona bene in MAC , mentre in Windows (XP) mi errore di NilObject?
#if TargetWin32 then
Dim dbFile As FolderItem
dbFile = app.ExecutableFile.Parent.Parent.Child(“Resources”).Child(“Esporta_Prodotti”).Child(“products_import.sqlite”)
If dbFile <> Nil Then
dim products_import as New SQLiteDatabase
products_import.DatabaseFile = dbFile
if products_import.Connect Then
MsgBox("Connected to " + dbFile.Name)
Else
MsgBox("Error: " + products_import.ErrorMessage)
End If
End If
#Endif
UpdateListaExport
Label92.Text= str(Listbox2.ListCount) + " " + “Items” + EndOfLine
Listbox2.ListIndex=Listbox2.LastIndex
dove sto sbagliando?
debug e esecuzione reale hanno path diversi (in genere)
Mac e win hanno posizioni diverse dell’applicativo rispetto alle risorse
Mac:
App.ExecutableFile.parent -> MacOS/
App.ExecutableFile.parent.parent -> AppBundle (ovvero la cartella dell’applicazione)
App.ExecutableFile.parent.parent.child(“Resources”) ->Resources/ (che quindi parallela a MacOS/)
Win:
App.ExecutableFile.parent ->CartellaApp/
App.ExecutableFile.parent.child(“Resources”) ->Resources/ (che quindi parallela all’applicazione)
se fai:
App.ExecutableFile.parent.parent.child(“Resources”) ottieni nil (a meno che nella cartella che contiene la cartella dell’applicazione c’ una cartella che si chiama Resources, perci potenzialmente potresti anche non avere nil ma puntare semplicemente al file sbagliato)
Per verificare guarda la struttura delle applicazioni create.