tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
546
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Kleiner Wicht Kleiner Wicht ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    60
    Wie immer ein nichtlösbares Problem.

    Hab ne TListView mit Scrollbalken darin befinden sich 20 Einträge,
    also Zahlen von 1-20.

    Nun kann man ja mit TopItem feststellen welcher Eintrag der erste sichtbare in der TListView ist.

    Jetzt mein Riesenproblem: Wie kann ich selber einen Eintrag als TopItem bestimmen ?.
    Also so in etwa:
    Code :
    1
    
    TListView->TopItem->Index = 12;
    Es geht so aber nicht, da man diesen Wert nur lesen kann, nicht aber selber setzen.

    Jemand ne Ahnung wie ich das anstellen kann ?
     

  2. #2
    GNiewerth GNiewerth ist offline Rookie
    Registriert seit
    Nov 2006
    Beiträge
    6
    Hi,

    keine Ahnung, ob TListView eine Eigenschaft oder Methode besitzt, um das hinzubekommen, du kannst aber eine Windows Nachricht an das Control schicken:

    Code :
    1
    
    ::SendMessage( MyListView->Handle, LVM_ENSUREVISIBLE, iIndex, true );

    iIndex ist der Index, der angezeigt werden soll und der letzte Paramter signalisiert, ob der Eintrag auch teilweise angezeigt werden darf. Ob der angezeigte Eintrag ganz oben in der Liste steht wird nicht garantiert, es wird nur garantiert, dass der Eintrag angezeigt wird.
    Wenn der Eintrag unbedingt als erstes angezeigt werden muss bleibt dir wohl nichts anderes übrig, als die Anzahl der Einträge im ListView im Verhältnis zur Range der vertikalen Scrollbar zu berechenen, und dann per Scroll die Scrollbar zu positionieren.

    Gruss,
    Guido
     

  3. #3
    Kleiner Wicht Kleiner Wicht ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    60
    Erstma Danke, es gibt eine Lösung, bei der muss aber etwas gerechnet werden.
    Bin immer noch dabei !

    Der gewünschte Eintrag muss selectiert werden.
    Dann mit "MakeVisible" in der ListView Sichtbar machen.

    Genau da ist aber dann der Haken, der Eintrag erscheint in der Listview aber nicht als TopItem.

    Code :
    1
    2
    
     
    ListView->Items->Item[ListView->VisibleRowCount-1 + ListView->ItemIndex]->MakeVisible(false);

    Das nur provisorisch als Ansatz.

    bis denne und danke nochma
    Geändert von Kleiner Wicht (18.12.06 um 22:24 Uhr)
     

Ähnliche Themen

  1. TListView Zeilen ausblenden
    Von delphi beginner im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 26.01.10, 12:07
  2. Icons SubItems von TListView
    Von Scrapy im Forum Borland CBuilder und VCL
    Antworten: 1
    Letzter Beitrag: 17.01.08, 11:42
  3. TListView ItemOwnerDraw
    Von KainPlan im Forum Borland CBuilder und VCL
    Antworten: 0
    Letzter Beitrag: 17.01.08, 11:40
  4. Sortieren in TListView
    Von myownshadow im Forum Borland CBuilder und VCL
    Antworten: 5
    Letzter Beitrag: 30.08.05, 22:07
  5. TListView verwenden
    Von alixander im Forum Borland CBuilder und VCL
    Antworten: 1
    Letzter Beitrag: 04.01.05, 09:46