Das Problem hab ich auch ständig mit überladenen Stringparametern.
AnsiString, UnicodeString/WideString und UTF8String ... gibt man nun direkt einen String 'xyz' an, dann kann sich Delphi nicht entscheiden.
Warum weiß ich nicht, denn es wäre doch sooo einfach:
Ist kein zu nutzender Typ vorgegeben (z.B. über eine Zielvariable oder einen eindeutigen Parameter), dann wird String genommen und schon wäre klar, welcher Aufruf genommen werden müßte
und/oder mam schaut, was an Möglichleiten zur Verfügung steht und versucht dann den angegebenen Typ irgendwo zuzuordnen und so auf ein eindeutiges Ergebnis zu kommen.
Hier ist es halt so, daß der Compiler das
[ findet, nun schaut er nach welchen Typ das Array haben kann/muß, anhand von den Parametern (hier findet er leider mehrere und kann sich nicht entscheigen, da er zu doof ist jetzt mal in die Werte zu schauen und zu erkennen, daß dort Strings oder Integer enthalten sind und demnach dann nur noch eine Deklaration passen würde) baut er nun das Array auf.
Dann nimmt er sich erst den Inhalt vor und versucht die "Strings" in das Zielarray einzubauen. (wenn jetzt als einziges das Zielformat ein Integer(LongInt)-Array erkannt worden wäre und man übergibt Strings, dann hätte er beim String gemeckert, weil es kein Integer ist).
Es wünschen sich ja schon lange welche einen mehrphasigen oder zumindestens (wenn nötig) vorausschauenden Compiler, welcher dann solche Probleme nicht hätte.