Einzelnen Beitrag anzeigen

Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.643 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme mit TStrings.IndexOfName unter Vista

  Alt 31. Mär 2007, 13:15
Folgender Sachverhalt:

ich habe eine Liste mit einer Reihe von Name= Wert Paaren:

blabla=1
dd=2
....
huebn=32
...
hübn=8763
...
usw=hjsd

Wenn ich unter Windows XP und früher liste.indexOfName('hübn')
aufrufe, erhalte ich wie erwartet den Index dieses Namens.

Mache ich das ganze unter Vista, bekommen ich den Index von 'huebn'



Folgender Code zeigt die betreffenden Quellen von Delphi 6

Delphi-Quellcode:
function TStrings.CompareStrings(const S1, S2: string): Integer;
begin
  Result := AnsiCompareText(S1, S2);
end;

function AnsiCompareText(const S1, S2: string): Integer;
begin
{$IFDEF MSWINDOWS}
  Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, PChar(S1),
    Length(S1), PChar(S2), Length(S2)) - 2;
{$ENDIF}
{$IFDEF LINUX}
  Result := WideCompareText(S1, S2);
{$ENDIF}
end;
Ich schätze mal CompareString mit LOCALE_USER_DEFAULT ist der Übeltäter.

Hat jemand so ein Verhalten schon einmal beobachtet? Was kann ich da machen? Sie der betreffende Quelltext von Delphi in späteren Versionen evtl. anders aus?

MSDN hat mich auch noch nicht weiter gebracht.
Sven Harazim
--
  Mit Zitat antworten Zitat