Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi OwnerData ListView - Invalidate,Update,Repaint (https://www.delphipraxis.net/148224-ownerdata-listview-invalidate-update-repaint.html)

hansmaad 25. Feb 2010 09:08


OwnerData ListView - Invalidate,Update,Repaint
 
Hi,
ich fang grad an mich etwas mit Delphi zu beschäftigen (hab ihr ein uralt Delphi 5).
Folgendes Problem zu dem ich keine Lösung finde.

Ich habe ein OwnerData Report Listview und möchte sortieren:

Delphi-Quellcode:
procedure MyForm.ListViewColumnClick(
  Sender: TObject; Column: TListColumn);
begin
  if ascending Then
    data.CustomSort(AscendingOrder)
  else
    data.CustomSort(DescendingOrder);

  ascending := Not ascending;
  List.Invalidate;
end;
Leider ist die neue Sortierung erst sichtbar, wenn ich das Fenster einmal "manuell"
neuzeichnen lasse, zB. mit einem anderen Fenster drübergehe oder minimiere/maximiere.
Ich habe auch repaint, refresh, update ausprobiert... geht alles nicht.
Wie bring ich ein Fenster dazu sich neuzuzeiochnen?

DeddyH 25. Feb 2010 10:56

Re: OwnerData ListView - Invalidate,Update,Repaint
 
Hallo und Willkommen in der DP :dp:,

versuch einmal
Delphi-Quellcode:
procedure MyForm.ListViewColumnClick(
  Sender: TObject; Column: TListColumn);
begin
  ListView.Items.BeginUpdate;
  try
    if ascending Then
      data.CustomSort(AscendingOrder)
    else
      data.CustomSort(DescendingOrder);

    ascending := Not ascending;
  finally
    ListView.Items.EndUpdate;
  end;
end;
Wobei ich natürlich nicht weiß, was "data" in Deinem Fall ist.

hansmaad 25. Feb 2010 12:07

Re: OwnerData ListView - Invalidate,Update,Repaint
 
Hi DeddyH,

Begin-, EndUpate hatte ich auch schon ausprobiert.

Komischerweise funktioniert es jetzt nach der Mittagspause mit allen Methoden.
Keine Ahnung was ich da vorhin fürn Blödsinn eingebaut habe.
Man sollte einfach nicht mit leerem Magen programmieren...
Trotzdem Danke für Deine Hilfe;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 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