AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

array of record sortieren

Ein Thema von venice2 · begonnen am 7. Dez 2020 · letzter Beitrag vom 27. Jan 2021
 
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.309 Beiträge
 
Delphi 12 Athens
 
#7

AW: array of record sortieren

  Alt 7. Dez 2020, 21:40
Das ist der Code aus deinem ersten Post. Habe ich mal umgemodelt. Einfach getippt. Nicht getestet.

Delphi-Quellcode:
procedure TSkinListView.SortItems(hListView: hWnd; ColumnIndex: Integer);
var
  i, j : Integer;
  lItemsInfoArray : array of TItemsInfo;
  StringList: TStringList;
  ItemCount: Integer;
  buf: array [0 .. 255] of Char;
  ItemText: PWideChar;
begin
  ListView_SortItems(hListView, @CompareFunc, ColumnIndex); // Liste wird sortiert

  StringList := TStringList.Create;
  try
    ItemCount := ListView_GetItemCount(hListView);

    for i := 0 to ItemCount - 1 do
    begin
      ZeroMemory(@buf, sizeof(buf));
      ListView_GetItemText(hListView, i, 1, buf, sizeof(buf));
      ItemText := buf;
      StringList.Add(ItemText); // Stringliste anhand der Sortierung erstellen.
    end;

    //***************************************************************************************
    // Das hier habe ich mal zugefügt ...
    SetLength(lItemsInfoArray,length(ItemsInfo));

    for i := High(ItemsInfo) downto Low(ItemsInfo) do
      begin
        j := StringList.IndexOf(ItemsInfo[i].IdentStr);
        if j>=0 then
          begin
            lItemsInfoArray[j] := ItemsInfo[i];
            StringList[j] := 'Irgend ein Text, damit das Item nicht mehr gefunden wird. Ist ja schon zugewiesen';
          end
        else
          begin
            // Hier ne Fehlerbehandlung rein
          end;
      end;
    // in lItemsInfoArray haben wir jetzt die korrekte Reihenfolge. Nun wieder zurück kopieren.
    for i := High(lItemsInfoArray) downto Low(lItemsInfoArray) do
      ItemsInfo[i] := lItemsInfoArray[i];
    // und zwar bis hier hin zugefügt
    //***************************************************************************************


  finally
    StringList.Free;
  end;
end;
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz