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 ListView.TopIndex wie immer an der jeweiligen Position halten? (https://www.delphipraxis.net/181907-listview-topindex-wie-immer-der-jeweiligen-position-halten.html)

AlexII 16. Sep 2014 20:07


ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Hallo,

ich habe eine ListView mit vielen Einträgen bzw. Zeilen. Nun wenn ich mit der ListView arbeite (einfügen, löschen usw...) springt diese immer an den Anfang, ListView.TopIndex wird immer 0. Nun suche ich ein Ereignis wo ich den ListView.TopIndex immer halten möchte. Welches Ereignis würde dafür gut passen, oder gibt es vllt eine andere Möglichkeit die ListView nicht immer an den Anfangen springen zu lassen?

Danke!

Der schöne Günther 16. Sep 2014 20:34

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
ScrollInView oder so ähnlich gibt es, das scrollt dann soweit auf/ab, bis der gewählte Index (oder Item?) wieder sichtbar ist.

AlexII 17. Sep 2014 09:13

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1272825)
ScrollInView oder so ähnlich gibt es, das scrollt dann soweit auf/ab, bis der gewählte Index (oder Item?) wieder sichtbar ist.

Finde ich nicht.... heißt das wirklich so?

Der schöne Günther 17. Sep 2014 09:29

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Nein, das war mein Fehler, ich dachte TListView sei von TScrollingWinControl abgeleitet. Dem war leider nicht so.

Es gibt aber etwas ähnliches: Du kannst dir aus deinem ListView.Items[x] ein TListItem holen und auf diesem MakeVisible(Bool) aufrufen.

Ansonsten: Auf welchem ViewStyle steht dein TListView? Bei mir rutscht der nicht ans Ende wenn man ein Item hinzufügt sondern bleibt wo er ist... (ViewStyle = vsList).

Headbucket 17. Sep 2014 09:41

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Eine einfache Lösung wäre natürlich auch, dass du die den TopIndex einfach merkst.
Delphi-Quellcode:
procedure TDialog.btnAddClick(Sender: TObject);
var
  temp: integer;
begin
  temp := ListView1.TopIndex;

  {...} 

  ListView1.TopIndex := temp;
end;
Grüße
Headbucket

AlexII 17. Sep 2014 09:54

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Zitat:

Zitat von Headbucket (Beitrag 1272858)
Eine einfache Lösung wäre natürlich auch, dass du die den TopIndex einfach merkst.
Delphi-Quellcode:
procedure TDialog.btnAddClick(Sender: TObject);
var
  temp: integer;
begin
  temp := ListView1.TopIndex;

  {...} 

  ListView1.TopIndex := temp;
end;
Grüße
Headbucket

Genau, das habe ich auch vor, nur wo weiß ich noch nicht. Deswegen suche ich ein passendes Ereignis, wo ich den Code zum Merken packen kann.

AlexII 14. Okt 2014 15:05

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Zitat:

Zitat von Headbucket (Beitrag 1272858)
Eine einfache Lösung wäre natürlich auch, dass du die den TopIndex einfach merkst.
Delphi-Quellcode:
procedure TDialog.btnAddClick(Sender: TObject);
var
  temp: integer;
begin
  temp := ListView1.TopIndex;

  {...} 

  ListView1.TopIndex := temp;
end;
Grüße
Headbucket

Weiß Du vllt wie man das in Lazarus macht? TopIndex gibt es da nicht. Und
Code:
ListView1.TopItem.Index := StrToInt(XMLPropStorage1.StoredValue['DoneTopItemIndex']);
will er irgendwie nicht schlucken, es kommt der Fehler:

Zitat:

main.pas(196,29) Error: No member is provided to access property

mkinzler 14. Okt 2014 15:11

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Weiß Du vllt wie man das in Lazarus macht? Dann solltest Du das in der Zukunft gleich angeben, bzw. den richtigen Bereich wählen, den die FCL ist weder VCL noch FMX oder (Windows-) Common Contols

AlexII 14. Okt 2014 18:40

AW: ListView.TopIndex wie immer an der jeweiligen Position halten?
 
Zitat:

Zitat von mkinzler (Beitrag 1275886)
Weiß Du vllt wie man das in Lazarus macht? Dann solltest Du das in der Zukunft gleich angeben, bzw. den richtigen Bereich wählen, den die FCL ist weder VCL noch FMX oder (Windows-) Common Contols

War schon richtig, suche es für Delphi (was schon geklärt ist) und! für Lazarus.


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