|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Не получается забороть listview
Делаю подобие каталогизатора файлов, большая часть готова, но застрял на обработке в listview. Смысл в том, чтобы можно было загонять файлы через Opendialog и в listview можно было бы двойным кликом открывать файлы.
1. Файлы закидываются. 2. Двойным кликом открываются. 3. Список файлов сохраняется в файл. А вот при следующем запуске программы и загрузке списка файлов из файла - всё подгружается, но двойной клик не работает. Выкладываю часть проги, которая относится именно к listview. Прошу помощи, listbox на форме чисто для проверки. |
#2
|
||||
|
||||
Цитата:
Код:
procedure TForm1.ListView1DblClick(Sender: TObject); begin ShellExecute(Application.MainForm.Handle,'Open',PChar(ListView1.Selected.SubItems[0]),Nil,Nil,SW_SHOW); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Corwin13 (09.04.2013)
|
#3
|
|||
|
|||
Цитата:
|
#4
|
|||
|
|||
Почему-то не сохраняются, и не загружаются иконки файлов. Пробовал сохранять поток тоже не выходит:
Код:
var Writer : TWriter; FileStream : TFileStream; begin if SaveDialog1.Execute then begin FileStream:=TFileStream.Create(SaveDialog1.FileName,fmOpenWrite or fmCreate); Writer := TWriter.Create(FileStream, SizeOf(ListView1)); Writer.WriteRootComponent(ListView1); Writer.Free; FileStream.Free; Загрузка: Код:
var reader : TReader; FileStream : TFileStream; begin if OpenDialog1.Execute then begin FileStream:=TFileStream.Create(OpenDialog1.FileName,fmOpenread); Reader := TReader.Create(FileStream, SizeOf(ListView1)); Reader.ReadRootComponent(ListView1); Reader.Free; FileStream.Free; |
#5
|
||||
|
||||
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject); var FStr: TFileStream; MemStr: TMemoryStream; i: integer; begin FStr:= TFileStream.Create('c:\ImageList1.sav', fmCreate); MemStr:= TMemoryStream.Create; MemStr.WriteComponent(ImageList1); MemStr.Position:= 0; ObjectBinaryToText(MemStr, FStr); MemStr.Free; FStr.Free; SaveListViewToFile1(ListView1, 'C:\1.sav'); ListBox1.Items.SaveToFile('c:\lisbox.txt'); end; procedure TForm1.Button2Click(Sender: TObject); var FStr: TFileStream; MemStr: TMemoryStream; ListItem: TListItem; begin FStr:= TFileStream.Create('c:\ImageList1.sav', fmOpenRead); MemStr:= TMemoryStream.Create; ObjectTextToBinary(FStr, MemStr); MemStr.Position:= 0; MemStr.ReadComponent(ImageList1); MemStr.Free; FStr.Free; ListView1.SmallImages:= ImageList1; ListView1.Items.BeginUpdate; LoadListViewToFile1(ListView1, 'C:\1.sav'); ListBox1.Items.LoadFromFile('c:\lisbox.txt'); ListView1.Items.EndUpdate; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
|||
|
|||
Спасибо, все получилось, а с файлами потом разбираться буду, пока так быстрей.
|
#7
|
||||
|
||||
Большой сюрпиз вам приподнесет OpenDialog. Попробуйте выделить в нем скажем 1000 файлов и загнать в ваш ListView.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |