Войти

Показать полную графическую версию : Поменять Lisbox на ListView или CheckListBox


Putin-mode
17-07-2012, 17:41
Добрый день!

Есть программа, в ней выводится список файлов конкретной папки в Listbox а потом происходит перемещение этих файлов в другую папку.

Минус в том что нет выбора какие именно файлы из списка нужно переместить и они перемещаются все.

Вот моя функция перемещения


procedure TForm1.Button4Click(Sender: TObject);

begin
while ListBox1.Items.Count > 0 do
begin
if Movedir(PAnsiChar(listbox1.Items[listbox1.ItemIndex]), PAnsiChar(Edit2.Text)) then

ListBox1.Items.Delete(i2)

else
begin
ShowMessage('Объект не перемещен');

Break;
end;
end;

ShowMessage('Объекты перемещены');
end;


Подскажите как переделать с листбокса на листвив?

Нужно чтоб пользователь ставил чеки на против нужных файлов и уже запускал перемещение файлов.

Или доработать эту процедуру


with CheckListBox1 do
for i:=0 to Count-1 do if checked[i] then
Movedir(PAnsiChar(Items[ItemIndex]), PAnsiChar(Edit2.Text))


http://s1.ipicture.ru/uploads/20120717/thumbs/uBDlEuz7.jpg (http://s1.ipicture.ru/Gallery/Viewfull/11903957.html)

так чтоб перемещались отмеченые файлы, и строчки которые относятся к перемещенным файлам тоже удалялись.

Спасибо!

opel431
18-07-2012, 02:52
Привет дружище!
1. Нужен ли тебе для этой задачи ListView?
2. Замени ListBox на CheckListBox и все проблемы.

Не нужно все лопатить заново! Просто замени предка.
Выдели ListBox на форме, далее Ctrl+X - Вырезали.
Перейди в модуль (*.PAS) установи курсор ниже end. скопируй вырезанный объект Ctrl+C


end.

object ListBox1: TListBox
Left = 144
Top = 104
Width = 121
Height = 97
ItemHeight = 13
TabOrder = 0
end


измени object ListBox1: TListBox на object ListBox1: TCheckListBox, вырежи измененный блок Ctrl+X, снова открой форму, клик на форме и Ctrl+V. Все, далее копируй и убирай элементы в цикле с нужным условием.

Putin-mode
18-07-2012, 10:53
opel431, Спасио, попробую!

AlexVol
18-07-2012, 12:24
А можно вообще ничего не менять: достаточно выставить в ListBox Multiselect в True и - вуаля.
А пробегаться по отмеченным пунктам при помощи свойства Selected элемента.

Putin-mode
18-07-2012, 12:33
AlexVol, пробывал, изначально так и было, но что то я там недопонял на счет как пробегаться и сделал перемещение вообще всего списка.

AlexVol
19-07-2012, 12:19
У отмеченного пункта свойство Selected выставлено в True. Соответственно,когда бежим по списку проверяем свойство и либо пропускаем, либо копируем.
Не забываем при успешном копировании снимать в False




© OSzone.net 2001-2012