Duda con código

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola tengo este código en un xbutton y queria ponerlo para que si la variable Directorio es nula (nil), salga un dialogo diciendo que no se ha añadido ninguna ruta. Lo he intentado de varias formas y no consigo hacerlo, por lo tanto haber si me podeis hechar una mano. La variable Directorio es información guardada en una base de datos. Gracias
tSelected = ListBox.GetSelected("Lista");
if (tSelected == nil) then
Dialog.Message("Información", "Por favor seleccione un programa de la lista.", MB_OK, MB_ICONINFORMATION)
else
nRecordID = String.ToNumber(ListBox.GetItemData("Lista", tSelected [1]));
local Directorio = sRuta_Carpeta
local Destino = Dialog.FolderBrowse("Seleccionar Carpeta:", _DesktopFolder);
if Destino ~= "CANCEL" then
local ruta = String.SplitPath(Directorio);
local Copiar = ""..Destino.."\\"..ruta.Filename.."";

local Final = Copiar
Folder.Create(Final);
Folder.Copy(""..Directorio.."", ""..Final.."");

end
end

Tinenes que asignar un valor y no una selección.

sSelected = ListBox.GetSelected("Lista");
tDataSelected = ListBox.GetItemData("Lista", sSelected[1]);
if (tDataSelected == nil) then
Dialog.Message("Información", "Por favor seleccione un programa de la lista.", MB_OK, ...


No soy programador lo sé a fuerza de haber practicado, y la solución es está por que he sido testigo, a menos que no me esté equivocando, espero que te sirva de ayuda...

Si no funciona prueba el tDataSelected = ListBox.GetItemData("Lista", sSelected);

Muchas gracias brordo voy a probra haber si me funciona. Un saludo

Bueno pues ya he conseguido que me funcione el código. Pero ahora el problema es como le pongo que compruebe solo la variable Directorio.
tSelected = ListBox.GetSelected("Lista");
if (tSelected == nil) then
Dialog.Message("Información", "Por favor seleccione un programa de la lista.", MB_OK, MB_ICONINFORMATION)
elseif (tDataSelected == nil) then
tDataSelected = ListBox.GetItemData("Lista", tSelected[1]);
Dialog.Message("Información", "No has introducido ninguna ruta para este programa.", MB_OK, MB_ICONINFORMATION)
else
nRecordID = String.ToNumber(ListBox.GetItemData("Lista", tSelected [1]));
local Directorio = sRuta_Carpeta
local Destino = Dialog.FolderBrowse("Seleccionar Carpeta:", _DesktopFolder);
if Destino ~= "CANCEL" then
local ruta = String.SplitPath(Directorio);
local Copiar = ""..Destino.."\\"..ruta.Filename.."";

local Final = Copiar
Folder.Create(Final);
Folder.Copy(""..Directorio.."", ""..Final.."");

end
end

Bueno ya lo he hecho.
tSelected = ListBox.GetSelected("Lista_Musica");
if (tSelected == nil) then
Dialog.Message("Información", "Por favor seleccione un programa carpeta de música de la lista.", MB_OK, MB_ICONINFORMATION)
elseif(sRuta_Carpeta_Musica == "") then
Dialog.Message("Información", "No has introducido ninguna ruta para esta carpeta de música.", MB_OK, MB_ICONINFORMATION)
else
nRecordID = String.ToNumber(ListBox.GetItemData("Lista_Musica", tSelected [1]));
local Directorio = sRuta_Carpeta_Musica
local Destino = Dialog.FolderBrowse("Seleccionar Carpeta:", _DesktopFolder);
if Destino ~= "CANCEL" then
local ruta = String.SplitPath(Directorio);
local Copiar = ""..Destino.."\\"..ruta.Filename.."";

local Final = Copiar
Folder.Create(Final);
Folder.Copy(""..Directorio.."", ""..Final.."");
end
end