Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Поменять Lisbox на ListView или CheckListBox (http://forum.oszone.net/showthread.php?t=238796)

Putin-mode 17-07-2012 17:41 1953677

Поменять Lisbox на ListView или CheckListBox
 
Добрый день!

Есть программа, в ней выводится список файлов конкретной папки в 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))



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

Спасибо!

opel431 18-07-2012 02:52 1953998

Привет дружище!
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 1954088

opel431, Спасио, попробую!

AlexVol 18-07-2012 12:24 1954149

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

Putin-mode 18-07-2012 12:33 1954154

AlexVol, пробЫвал, изначально так и было, но что то я там недопонял на счет как пробегаться и сделал перемещение вообще всего списка.

AlexVol 19-07-2012 12:19 1954766

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


Время: 22:41.

Время: 22:41.
© OSzone.net 2001-