Ceci est une suite de that question.Ce qui peut empêcher VarDateFromStr d'utiliser les paramètres régionaux de l'utilisateur en cours lorsque VAR_LOCALE_USER_DEFAULT est fourni en tant qu'argument
Comme demandé, ce qui peut rendre VarDateFromStr (à partir de Oleaut32.dll) ne parvient pas à utiliser les paramètres régionaux de l'utilisateur actuel lorsque VAR_LOCALE_USER_DEFAULT est fourni en tant qu'argument?
Notre application a rencontré un certain nombre de problèmes à cause de cela.
Sur les systèmes avec le problème, si nous exécutons le code suivant:
procedure TForm1.Button3Click(Sender: TObject);
var V : Variant;
dte : TDateTime;
begin
V := Label28.Caption;
dte := VarAsType(V,varDate) ; //Implicitly calls VarDateFromStr
V := dte;
Label28.Caption := V; //Implicitly calls VarBStrFromDate
end;
avec Label28 commençant par une légende de « 11-05-2010 », la légende alterne de 11-05-2010 à 05-11-2010 entre chaque appel.
Sur le système donné, GetLocaleStr (GetThreadLocale, LOCALE_SSHORTDATE, 'm/d/yy') retourne "dd-MM-AAAA" (Le format de date courte pour l'utilisateur actuel)
Le problème se produit sur Windows XP SP3. (Bien que notre application ne soit utilisée sur aucune autre version du système d'exploitation, je ne peux pas dire si elle est spécifique à cette version). Ma première pensée est que cela pourrait être lié à la sécurité (la sécurité de l'utilisateur est hermétique), mais je n'ai pas pu le prouver pour le moment.
Je rencontre exactement le même problème avec un TParameter.Value ADO (TADODataSet.Parameters.ParamByName(). Value). Si vous avez trouvé une solution, j'apprécierais grandement que vous puissiez répondre à votre propre question. :) –