@lucky: Du musst zuerst prüfen ob die beiden nutzer den gleichen showtype haben. Ist dem nicht so dann ist das item kleiner welches offline ist. Wenn die Showtypes gleich sind musst du alphabetich vergleichen.
dein jetziger source stimmt also zur hälfte. Du musst also im Else-Fall noch vergleichen welcher offline ist:
Delphi-Quellcode:
//If Stimmt, denn beide sind vom gleichen ShowType, somit macht alphabetic sinn
if (ShowType1 = jshowNone) and (AnsiCompareStr(Node1.Text, Node2.Text) < 0) then
Compare := -1
else if (ShowType1 = jsshowNone) then
Compare := -1
else
Compare := 1;
Ich bin mal davon ausgegangend as "jsShowNone" bei dir für offline steht.
[Edit]
Ach nein, ich seh grad das der if-zweig auch nicht ganz stimmt (zumindest nicht mit meinem ansatz).
So wie es xaromz gemacht hat ist es eigentlich am besten.
Delphi-Quellcode:
//If Stimmt, denn beide sind vom gleichen ShowType, somit macht alphabetic sinn
if (ShowType1 = ShowType2) then
Compare := AnsiCompareStr(Node1.Text, Node2.Text)
else if (ShowType1 = jsshowNone) then
Compare := -1
else
Compare := 1;
[/Edit]