Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objektliste sortieren (https://www.delphipraxis.net/114033-objektliste-sortieren.html)

Apollonius 18. Mai 2008 18:36

Re: Objektliste sortieren
 
Wohl eher mit CMOVcc. :mrgreen:

Hansa 18. Mai 2008 18:43

Re: Objektliste sortieren
 
Uff, ihr schreibt noch den roten Kasten kaputt. :mrgreen: Nene, nicht noch Assembler. Es geht um kein AKW. Mit dem - das geht schon mal. Die Delphi Hilfe zeigt leider kein CompareValue bei "siehe auch". Das muss man eben kennen. Jetzt hat mir zufällig die Codevervollst. noch das hier beschert :

Zitat:

Zitat von DH
Delphi-Syntax:

function VarCompareValue(const A, B: Variant): TVariantRelationship;

Was gibts denn da noch alles ? :shock: Gut, das CompareValue dürfte passen. Füe Sonderfälle wäre ja noch das CompareText da. Jetzt gibts aber noch ein grundsätzliches Problem : der Aufruf der Vergleichsfunktion. Es geht konkret um Stringgrid-Sortierung. Die Zellen sind ja sowieso als Text da. Soll ich nicht besser Text Text sein lassen und darüber sortieren ? In einigen Spalten stehen zwar Zahlen, aber die Zellen selbst sind ja schon strings.

Luckie 18. Mai 2008 18:46

Re: Objektliste sortieren
 
Dann sortier mal die Zhalen eins bis hundert alphabetisch und guck, was passiert.

Jelly 18. Mai 2008 18:49

Re: Objektliste sortieren
 
Zitat:

Zitat von Luckie
Dann sortier mal die Zhalen eins bis hundert alphabetisch und guck, was passiert.

Genau, was passieren soll :mrgreen: :
Code:
1
10
100
11
12
13
14
...
2
20
21
...
99

Hansa 18. Mai 2008 18:56

Re: Objektliste sortieren
 
Wollt ihr mich für blöd verkaufen ? :warn: :mrgreen: Dafür hat man Funktionen
Delphi-Quellcode:
function rb (st : string;feldweite : byte) : string;
Ich werde jetzt das STringgrid mal bis zum platzen füllen und wirklich gucken, was los ist.

himitsu 18. Mai 2008 19:05

Re: Objektliste sortieren
 
Zitat:

Zitat von Apollonius
Wohl eher mit CMOVcc. :mrgreen:

nee, eher SETcc :tongue:

CMOVcc würd ich mehr für Min/Max-Funktionen nehmen ... hier braucht man doch mehr -1..1

Hansa 18. Mai 2008 19:27

Re: Objektliste sortieren
 
Jetzt gibts aber noch einen prinzipiellen Haken : ich sortiere gerne das Stringgrid über Click auf Titelzeile. Ich merke mir dazu die entsprechende Spalte über die dann sortiert wird. Wie bringe ich das jetzt der Vergleichs-Funktion bei ? Ich sehe nur 2 Möglichkeiten :

1. : für jede Spalte eine eigene Sortierfunktion aufrufen, oder
2. : innerhalb dieser Funktion entsprechend reagieren.

2.1 : Bei letzerem gäbe es wieder zwei Varianten : Parameter für die Funktion (glaube aber, der @ macht da nicht mit) oder

2.2 : protected Variable deklarieren.

Any ideas ? :wiejetzt: Der Klammeraffe muss allerdings sowieso noch weg wegen der Warnungen, oder nicht ?

zu 2.1 : Parameter kann ich ja nicht wegen dem @ benutzen. Scheidet wohl aus.

zu 2.2 : ich kriege die Vergleichs-Funktion nicht in die Form. Was jetzt ?

sx2008 18. Mai 2008 19:46

Re: Objektliste sortieren
 
TSortAString Grid v.1.2.0 FWS 10 k 18 Mar 1998
By Johan Godfried. Sort a StringGrid (or any descendant) anyway you like, Horizontal / Vertical, Ascending / Descending, Character / Numeric / Date. Single column sort key only at this time. This is not grid, but for grid.
http://www.torry.net/vcl/grids/stringgrids/sasg.zip

Hansa 18. Mai 2008 19:51

Re: Objektliste sortieren
 
Scheidet direkt aus, weil nicht vom Stringgrid abgeleitet, sondern bloß von TComponent.

sx2008 19. Mai 2008 01:45

Re: Objektliste sortieren
 
Zitat:

Zitat von Hansa
Scheidet direkt aus, weil nicht vom Stringgrid abgeleitet, sondern bloß von TComponent.

Hmm, versteh ich nicht. Die Komponente SASG ist von TComponent abgeleitet und ist in der Lage, jedes TStringGrid oder davon abgeleitete Grid zu sortieren.
Das TStringGrid kann so bleiben wie es ist, es wird ja "von aussen" sortiert.
Man könnte die Komponente SASG auch auf eine ganz "normale Klasse" reduzieren um Overhead zu sparen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Seite 2 von 3     12 3      

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