Hmm, jetzt muss ich aber doch nochmal was dazu fragen...
bei der Listbox habe ich via + oder - realisiert, dass man den Eintrag hoch bzw. runter setzen kann
Delphi-Quellcode:
if key = '+' then begin
try
listbox1.Items.Exchange(listbox1.ItemIndex,listbox1.ItemIndex-1);
listbox1.ClearSelection;
except
screen.cursor := crdefault; //nur falls mal hängt
end;
end;
if key = '-' then begin
try
listbox1.Items.Exchange(listbox1.ItemIndex,listbox1.ItemIndex+1);
listbox1.ClearSelection;
except
screen.cursor := crdefault; //nur falls mal hängt
end;
end;
Und zwar funktioniert das auch, OHNE das ein Eintrag selektiert wurde, also nur die gestrichelte Linie auf dem Eintrag liegt.
Bei der Listview funktioniert das nicht, hab´s so versucht:
Delphi-Quellcode:
if (key = '-') and (listview1.selcount > 0) then begin
try
listview1.items.Insert(Listview1.itemindex + 2);
Listview1.Items[listview1.itemindex + 2] := listview1.Selected;
Listview1.Items[listview1.itemindex].Delete;
except
screen.cursor := crdefault; //nur falls mal hängt
end;
end;
funktioniert auch, aber nur einmal, dann ist der der Focus weg und nicht geht mehr.
aber ohne
and (listview1.selcount > 0)
gäbe es natürlich Crash, weil dann leere Zeilen eingefügt würden
wie kann ich sowas realisieren, und warum ist es bei der Listbox so, das es auch ohne den Focus geht und bei der Listview nicht?