Então, achei diferente essas duas linhas no seu MakeDir e SaveMaxFile.. Vê se tá funcionando certo mesmo..
É q é assim, o seu MyDir é um array, um array é um conjunto de coisas, no caso, é um conjunto de subdiretórios lá do diretório q vc pôs, por exemplo se no diretório lá tem 6 subdiretórios (com as letras do alfabeto, pra exemplicar), o MyDir seria algo como #(D:/A, D:/B, D:/C, D:/D, D:/E, D:/F), que é um array, por exemplo pra eu falar assim \'qual é o enésimo componente desse array\', por exemplo, se eu quero saber o terceiro componente nesse array q eu escrevi acima, seria MyDir[3], se vc escrevesse no listener \"Print MyDir[3]\" ele iria retornar \"D:/C\", e se vc escrevesse no listener \"Print MyDir\", ele iria retornar \"#(D:/A, D:/B, D:/C, D:/D, D:/E, D:/F)\" que é o array inteiro..
Aí no caso, por exemplo lá, no DropDownList, tem uma ordem, que é a mesma ordem do array q compõe os itens dela.. Se o cara clica no terceiro diretório da lista, o DirSel.Selection vai ser igual a \'3\' (o \".Selection\" é uma qualidade do DropDownList)..
Lembra q eu tinha falado como ver lá o enésimo componente do array (Array[N] retorna o enésimo componente do array)? Então, tem o seu MyDir (que é o meu DirCol, eu chamei de \'DirCol\' por ser uma \'coleção de diretórios\' hehe..), se eu quisesse saber o terceiro componente do array MyDir, eu iria dizer MyDir[3].. Da mesma maneira, como o \'Selection\' do DropDownList é um numero, eu poderia (fiz) por ao invés de um número, a seleção da dropdownlist.. Que seria escrita como Mydir[DirSel.Selection]..
Então, se eu quisesse saber o componente selecionado na dropdownlist, cuja lista é o array MyDir, eu falaria MyDir[DirSel.Selection].. Ou seja, MyDir[DirSel.Selection] é o subdiretório escolhido..
Só que MyDir, como é um array, se vc passar ele pra string, vai ficar como se fosse uma frase (no caso do exemplinho alfabetico lá, seria uma \'frase\' como \"D:/A, D:/B, D:/C, D:/D, D:/E, D:/F\".Então as vezes vc pode até estar salvando sempre no mesmo diretório sem perceber.. dá uma olhada aí e tal.. Ou eu q n entendí como vc fez..
Olha como eu tinha feito:
MakeDir (DirCol[DirSel.selection] as string+edt1.text)
(Por exemplo, se eu escolhí o terceiro na lista do dropdownlist, equivaleria a ter escrito DirCol[3] (que é o terceiro diretório na lista), se eu tivesse escolhido o segundo na lista do dropdownlist, equivaleria a ter escrito DirCol[2](que é o segundo diretório na lista), etc.. Então o nome do diretório vai ser \"O diretório escolhido, na DropDownList\", como string (pra poder somar as letras e tal), \'somado\' ao nome digitado na caixa de texto..)
SaveMaxFile (DirCol[DirSel.selection] as string+edt1.text+\"/\"+edt1.text)
(Aí então, como eu acabei de criar esse diretório, já referencio ele nessa linha, somo a barra, e somo o nome digitado na caixa de texto..)
A Beleza está entre a Ética e a Razão!..