Dann habe ich auf ein Minimum auf folgenden Code abgespeckt:
Code: Alles auswählen
var
sa: TStringArray = ('aaa', 'bbb', 'ccc');
ba: array of byte = (1, 2, 3, 4, 5, 6);
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := pos(ba, 4).ToString;
Caption := pos(sa, 'aaa').ToString;
end;
[Debuggerausnahmen-Nachricht]
Projekt project1 hat Exception-Klasse »EVariantError« ausgelöst mit der Meldung:
Invalid variant type cast
Irgendwie hat das eine Zusammenhang mit Variant. Deshalb habe ich mal in den Sourcen nachgeguckt und folgendes gefunden:
Code: Alles auswählen
Function Pos (const v : Variant; Const s : ShortString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
begin
Result:=Pos(ShortString(v),s);
end;
Weiss einer von euch den Grund, wies FPC alles mögliche für Variablen zulässt ?