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 TListView: Verschieben von Items: Problem mit Focus (https://www.delphipraxis.net/78342-tlistview-verschieben-von-items-problem-mit-focus.html)

Helmi 3. Okt 2006 13:57


TListView: Verschieben von Items: Problem mit Focus
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe von den Schweizern einen Code gefunden um Items in einer ListView auszutauschen (Link).

Ich habe diesen Code auf meine Bedürfnisse erweitert, unter anderem auch, dass der ItemIndex "mitwandert".

Nun hab ich aber das Problem, dass zwar die Markierung mitwandert, der Focus aber nicht (damit mein ich das gestrichelte Rechteck.

Anbei mein Test-Programm mit der umgebauten Procedure.

Kann mir jemand helfen, wie ich den Focus mitwandern lassen kann?

marabu 3. Okt 2006 19:10

Re: TListView: Verschieben von Items: Problem mit Focus
 
Hallo Helmi,

Focused und Selected sind Eigenschaften, die gesondert behandelt werden müssen:

Delphi-Quellcode:
procedure ExchangeItems(items: TListItems; index1, index2: Integer);
var
  li, item1, item2: TListItem;
  b: Boolean;

  procedure SwapFocus(item1, item2: TListItem);
  begin
    b := item1.Focused;
    item1.Focused := item2.Focused;
    item2.Focused := b;
  end;

  procedure SwapSelected(item1, item2: TListItem);
  begin
    b := item1.Selected;
    item1.Selected := item2.Selected;
    item2.Selected := b;
  end;

begin
  item1 := items.Item[index1];
  item2 := items.Item[index2];
  items.BeginUpdate;
  try
    li := TListItem.Create(items);
    li.Assign(item1);
    item1.Assign(item2);
    item2.Assign(li);
    SwapFocus(item1, item2);
    SwapSelected(item1, item2);
    li.Free;
  finally
    items.EndUpdate
  end;
end;
Grüße vom marabu


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