Para aplicar o método locate com vários campo é necessário utilizar a função VarArrayOf.
Exemplo
DataSet.Locate('campo1;campo2', VarArrayOf(['valor1', 'valor2']));
var
vList: Variant;
begin
vList := VarArrayCreate([0, 1], varVariant);
vList[0] := 'Valor0';
vList[1] := 'Valor1';
DataSet.Locate('chave0;chave1', vList, []);
end;