AGB  ·  Datenschutz  ·  Impressum  







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

Drag Drop ListView kurz vor Verzweifelung

Ein Thema von TUX_der_Pinguin · begonnen am 2. Mär 2007 · letzter Beitrag vom 16. Mär 2007
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: Drag Drop ListView kurz vor Verzweifelung

  Alt 14. Mär 2007, 13:42
Ich habe meinen Vorherigen Quelltext noch mal überarbeitet und jetzt eine etwas "unsaubere" Lösung gefunden wie ich finde.
Lass mich gerne korregieren bzw. verbessern, nur ist mir nichts anderes eingefallen wie es funktionieren könnte.

Delphi-Quellcode:
  //Alle Fenster nach TListView komponenten durchsuchen
  For i := 0 To frmMain.MDIChildCount-1 Do Begin
    For z := 0 To frmMain.MDIChildren[i].ComponentCount-1 Do Begin
      If frmMain.MDIChildren[i].Components[z] Is TListView Then Begin
        With TListView(frmMain.MDIChildren[i].Components[z]) Do Begin

          If OwnerData Then Begin
            //Merken der Selektion sowie Scroll-Position
            SetLength(Sel, SelCount);
            Idx := 0;

            For c := 0 To Items.Count-1 Do Begin
              If Items[c].Selected Then Begin
                Sel[Idx] := c;
                Inc(Idx);
              End;
            End;{for}

            TopIt := TopItem.Index;

            //Reset der Listenelemente
            Count := Items.Count;
            Items.Count := 0;
            Items.Count := Count;


            //Widerherstellen der Selektion sowie Scroll-Position
            For c := 0 To High(Sel) Do Begin
              Items[Sel[c]].Selected := True;
            End;

            //ShowMessage(fGetField(Scroller[TopIt], 'Ident'));
            While (TopIt > TopItem.Index) Do Scroll(0, 10);

          End;

        End;{with}
      End;{if}
    End;{for}
  End;{for}
Meine Lösung macht jetzt folgendes es wird geschaut welche Einträge ausgewählt wurden, dann wird ebenfalls gemerkt wo der
Scrollbalken steht bzw. welcher Eintrag als erstes Sichtbar ist. Dann wird die Liste gelöscht und gleich neu geladen.
Anschliessend werden die Einträge die zuvor markiert waren wieder markiert und die Liste wird an die ursprüngliche Position
gescrollt.

mfg

TUX
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:57 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