AGB  ·  Datenschutz  ·  Impressum  







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

TListView CheckBoxen verschwinden

Ein Thema von DieHardMan · begonnen am 15. Mai 2003 · letzter Beitrag vom 15. Mai 2003
Antwort Antwort
DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#1

TListView CheckBoxen verschwinden

  Alt 15. Mai 2003, 07:10
Ich benutze diese Prozedur um Items in einer ListView nach oben und nach unten zu verschieben. Die Eigenschaft Checkboxes ist auf True. Mein Problem ist, wenn ich ein Item mit Häckchen verschiebe ist alles in ordnung, verschiebe ich aber ein Item ohne Häkchen auf ein Item mit Häckchen verschwinden alle anderen Häckchen auser das Häckchen von dem soeben verschobenen Item.

Habe ein kleines Beispielprojekt erstellt, dass mein Problem vielleicht etwas einfacher darstellt:

Beispiel-Projekt

Delphi-Quellcode:
procedure MoveItems(AListView: TListView; Up: Boolean = True);
var
  OldItem, NewItem: TListItem;
  AIndex: Integer;
begin
  Assert(Assigned(AListView));
  with AListView do
  begin
    Items.BeginUpdate;
    try
      OldItem := TListItem.Create(Items);
      try
        OldItem.Assign(Selected);
        if Up then
          AIndex := Selected.Index - 1
        else
          AIndex := Selected.Index + 1;
        if not AIndex in [0..Items.Count - 1] then
          Exit;
        Selected.Delete;
        NewItem := Items.Insert(AIndex);
        NewItem.Assign(OldItem);
        Selected := NewItem;
      finally
        OldItem.Free;
      end;
    finally
      Items.EndUpdate;
    end;
  end;
end;
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Alle meine Entchen...
  Mit Zitat antworten Zitat
DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#2

Lösung gefunden

  Alt 15. Mai 2003, 14:29
Hab mir dieses Assign mal angeschaut und rausgefunden dass es an folgender Anweisung liegt:

Code:
OldItem.Checked := Selected.Checked;
Hab zwar bis jetzt noch net gerafft wie und wieso des net geht, aber ich hab die prozedur ein bisschen modifiziert und so funkt es jetzt.

Delphi-Quellcode:
{*********************************************************}
{ Einzelne ListView Items nach oben und unten verschieben }
{*********************************************************}
procedure MoveItems(AListView: TListView; Up: Boolean = True);
var
  OldItem, NewItem: TListItem;
  AIndex: Integer;
  ItemChecked: boolean;
begin
  Assert(Assigned(AListView));
  with AListView do
  begin
    Items.BeginUpdate;
    try
      OldItem := TListItem.Create(Items);
      try
        OldItem.Caption := Selected.Caption;
        OldItem.Data := Selected.Data;
        OldItem.ImageIndex := Selected.ImageIndex;
        OldItem.Indent := Selected.Indent;
        OldItem.OverlayIndex := Selected.OverlayIndex;
        OldItem.StateIndex := Selected.StateIndex;
        OldItem.SubItems := Selected.SubItems;
        if Selected.Checked then
          ItemChecked := true
        else
          ItemChecked := false;
        if Up then
          AIndex := Selected.Index - 1
        else
          AIndex := Selected.Index + 1;
        if not AIndex in [0..Items.Count - 1] then
          Exit;
        Selected.Delete;
        NewItem := Items.Insert(AIndex);
        NewItem.Assign(OldItem);
        NewItem.Checked := ItemChecked;
        Selected := NewItem;
      finally
        OldItem.Free;
      end;
    finally
      Items.EndUpdate;
    end;
  end;
end;
Alle meine Entchen...
  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 20:30 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