Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.856 Beiträge
 
Delphi 12 Athens
 
#1

TCHeckListBox:Sort sortiert anders als ich

  Alt 1. Nov 2022, 14:14
Hallo,

gegeben ist folgendes:

D11.2, VCL Anwendung mit eienr TCheckListBox.
Außerdem eine generische TObjectList, deren Einträge u.a. ein Dateinamensfeld (string) haben.
Die in dieser Liste gespeicherten Einträge werden über eine Methode der CheckListBox.Items
Eigenschaft zugewiesen (diese wird vorher geleert).

Außerdem wurde für die generische Liste eine Sortierung anhand des Dateinamens umgesetzt.
Zum Vergleich der Strings wird CompareStr genutzt. Vermutlich liegt da auch der Hund begraben.

In den Pfad/Dateinamen gibt's u.a. solche:
[..]\Source\AddSomething.pas
[..]\Source\fWizard.pas
[..]\Source\__recovery\AddSomething.pas

Das Sort der TObjectList sortiert die jetzt so:
[..]\Source\AddSomething.pas
[..]\Source\__recovery\AddSomething.pas
[..]\Source\fWizard.pas

weil im ASCII Zeichensatz _ zwischen den großen und kleinen Buchstaben kommt.

Wenn CheckListBox.Sorted true ist, wird dort drin aber so sortiert:
[..]\Source\__recovery\AddSomething.pas
[..]\Source\AddSomething.pas
[..]\Source\fWizard.pas

Wie bekomme ich die selbe Sortierung auch in der TObjectList hin ohne
im Comparer immer .ToUpper oder .ToLower aufrufen zu müssen?

Und: was ist der Unterschied zwischen CompareStr und CompareText?
Auf den ersten Blick auf die Hilfethemen beider sah' ich noch keinen...
  Mit Zitat antworten Zitat