résolu[C++/builder] Erreur étrange sur affectation

J’ai un code pour récuperer un fichier issu d’une boite de dialogue de selection de fichier:
Alors:
AnsiString fic=OpenDialog1->Files[0]; ne fonctionne pas

AnsiString fic=OpenDialog1->Files->operator ; fonctionne!!! :pt1cable:

l’erreur est “[C++ Erreur] MainForm.cpp(23): E2285 Impossible de trouver une correspondance pour ‘AnsiString::AnsiString(const AnsiString&)’”

Apparemment c’est une histoire de const mais j’ai essayé
const AnsiString fic=OpenDialog1->Files[0]; sans succés…

Une idée?

Là, il cherche un constructeur de copie prenant une référence constante.

Elle renvoie quoi comme type File[0] ? et directement via l’opérateur?

(je parie que ça renvoie une référence, et dans ce cas c’est AnsiString& fic)

En fait Files est un TString * et cette classe contient une surcharge de []

AnsiString operator[](int Index) { return Strings[Index]; }

Quand je fais un
const AnsiString & fic=OpenDialog1->Files[0];
ça ne fonctionne pas non plus…

Mais j’ai trouvé la solution, en fait c’est mal documenté builder, pour accéder à la liste des Strings une proprieté est public:
AnsiString fic=OpenDialog1->Files->Strings[0];

En tout cas merci :slight_smile: