Re: Stringgrid inkl. Umlaute richtig sortieren
Hallo Marabu,
schiebst du dabei die Bits um 16 stellen nach Links oder wie muss ich mir das vorstellen? Und warum funktioniert das ueberhaupt mit dem schieben? |
Re: Stringgrid inkl. Umlaute richtig sortieren
Ja richtig, alle Bits werden um 16 Positionen nach links verschoben - das ist eine Multiplikation mit 2 hoch 16. Das funktioniert so, weil die Multiplikation, wie jede andere Rechenoperation auch, auf Registerebene per Shift realisiert wird. Manchmal musst du aufpassen, dass du den richtigen Basistyp verwendest. Ein Byte und SHL 8 löscht effektiv das Byte, da die Bits "am linken Rand" verloren gehen und "von rechts her" mit Nullen aufgefüllt wird.
Hier ein paar Stichworte für eine Suche: Technische Informatik Schieberegister ALU. PS: Hast du Schlafstörungen? Bei dir muss es doch zappenduster sein... |
Re: Stringgrid inkl. Umlaute richtig sortieren
Danke Marabu, das müßte nun wirklich funktionieren...sieht hier auch gut aus.
Danke !!! Viele Grüße Steven |
Re: Stringgrid inkl. Umlaute richtig sortieren
Zitat:
nein hab ich keine, Schlaf is doch sowas von ueberbewertet, findest du nicht auch :???: Vielen Dank fuer die Erklaerungen! |
Re: Stringgrid inkl. Umlaute richtig sortieren
Hallo
wie funktioniert das jetzt hiermit?
Delphi-Quellcode:
kann ich das weglassen oder muss ich die anderen umlaute integrieren?
SIZE_SUFFIX = 'Ä'; // Wie kann ich auch die anderen Umlaute sortieren (angeben)
SIZE_COLINDEX = 3; wenn ja...magst du mir noch zeigen wie? grüße steven |
Re: Stringgrid inkl. Umlaute richtig sortieren
Hallo Steven,
die beiden Konstanten sind doch nur Relikte aus deinem anfangs geschilderten Problem, der Sortierung von Zeichenketten, die eine Zahl und ordinären Text enthalten. Sie haben nichts mit dem allgemeinen Sortierproblem (Telefonbuchordnung) zu tun. Gute Nacht |
Re: Stringgrid inkl. Umlaute richtig sortieren
AHA...achso, also brauche ich nur folgendes?
Irgendwie bin ich grad etwas verwirrt:
Delphi-Quellcode:
// Event Handler für OnCustomCompare() im OI erzeugen:
procedure TForm.AdvStringGrid1ClickSort(Sender: TObject; ACol: Integer); begin with Sender as TAdvStringGrid do SortByColumn(ACol); end;
Delphi-Quellcode:
procedure TForm.AdvStringGrid1CustomCompare(Sender: TObject; str1,
str2: String; var Res: Integer); begin // die Locale solltest du in deinem Programm an zentraler Stelle // gleich zu Beginn zwischenspeichern, damit der ständige Aufruf // von GetThreadLocale hier unterbleiben kann. Res := CompareString(GetThreadLocale or SORT_GERMAN_PHONE_BOOK shl 16, NORM_IGNORECASE, PChar(str1), Length(str1), Pchar(str2), Length(str2)) - 2; end; |
Re: Stringgrid inkl. Umlaute richtig sortieren
Richtig.
Der Code für das Event OnGetFormat() bezog sich auf Spaltenwerte der Form '150 Kb'. Weg damit. |
Re: Stringgrid inkl. Umlaute richtig sortieren
Okay
Danke :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz