Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 7
1

TreeView работа с документами

14.06.2017, 10:47. Показов 1774. Ответов 11
Метки нет (Все метки)

Есть программка которая открывает лекции в формате .doc в olecontainer. Как сделать чтобы по нажатию на кнопку добавить вышло окно opendialog в котором можно указать путь к файлу, а после открытия добавить в TreeView этот документ со своим названием?
Кода для doc. в OleContainer
Delphi
1
2
3
4
begin
OleContainer1.CreateObjectFromFile(GetCurrentDir+'\название_документа', true);
if OleContainer1.State <> osEmpty then OleContainer1.DoVerb(ovShow);
end;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2017, 10:47
Ответы с готовыми решениями:

Работа с XML документами
Доброго времени суток. Есть некоторый шаблон XML: &lt;test&gt; &lt;element&gt; &lt;value&gt;10&lt;/value&gt;...

Работа с документами Word в Delphi
Добрый день народ. Имеется 6 документов Word. В каждом документе я назначил закладки в тех...

Работа с документами Word .docx
Приветствую! Задача: есть несколько документов вордовских, к примеру 1.docx 2.docx 3.docx......

Работа делфи с документами word
Доброго времени суток, уважаемые форумчане. Возник следующий вопрос - как в делфи 7 сделать,...

__________________
11
Модератор
6791 / 4380 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
14.06.2017, 11:19 2
mamaama00, Вам надо хранить структуру Вашего TreeView в каком-то файле и при добавлении писать новый узел туда, а при старте программы читать файл и динамически воссоздавать эту структуру.
1
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 7
14.06.2017, 11:38  [ТС] 3
Так как это сделать вообще не догоняю.
0
4931 / 3840 / 1277
Регистрация: 14.04.2014
Сообщений: 17,719
Записей в блоге: 18
14.06.2017, 14:56 4
где ТЗ?
как выглядит ваше TreeView?
мы должны за вас придумать?
1
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 7
14.06.2017, 16:49  [ТС] 5
Допустим такая структура в которой Лекция1 создается по нажатию на кнопку и указывается путь к файлу doc. который будет открыт в OleContainer

Лекции
......Лекция1
......Лекция2
......Лекция3
......Лекция4
Документы
......Документ1
......Документ2
......Документ3
......Документ4
0
4931 / 3840 / 1277
Регистрация: 14.04.2014
Сообщений: 17,719
Записей в блоге: 18
15.06.2017, 01:47 6
эта программа есть и называется explorer
слева папки, справа файлы. и есть секретная часть, нажимаем кнопку и справа доп. окно, которое позволяет сразу просматривать файл, не открывая его...
одно но
вот у меня на компьютере нет MS Office. Как быть? Никакие OLE в этом случае ваш DOC файл не откроют
1
Модератор
6791 / 4380 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
15.06.2017, 11:32 7
Лучший ответ Сообщение было отмечено mamaama00 как решение

Решение

mamaama00, вот посмотрите пример:
ограничения:
1. Работает только с текстовыми файлами
2. Файл tree.dat обязательно должен лежать рядом с ехе-шником
В остальном пример удовлетворяет Вашему вопросу: при старте строится дерево, документы можно открыть двойным кликом по названию, добавление производится из контекстного меню кликом ПКМ по дереву.
1
Вложения
Тип файла: rar TreeView.rar (2.2 Кб, 24 просмотров)
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 7
15.06.2017, 21:47  [ТС] 8
а можно сделать чтобы открывались файлы doc в olecontainer вместо txt memo?
0
Модератор
6791 / 4380 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
16.06.2017, 02:06 9
Можно, конечно, код у Вас, что мешает? Вы ведь уже что-то там делали с этим самым OLE-контейнером? Вот и поставьте код работы с ним вместо загрузки в Мемо, какие проблемы-то? Лично я сроду с этим средством не работал и разбираться с этим как-то ни необходимости ни желания нет...
А вообще мой Вам совет: прислушайтесь к тому, что сказал krapotkin:
Цитата Сообщение от krapotkin Посмотреть сообщение
одно но
вот у меня на компьютере нет MS Office. Как быть? Никакие OLE в этом случае ваш DOC файл не откроют
Самый элементарный вариант, который мне видится: пересохранить все Ваши файлы *.doc в формат *.html и в программе использовать связку TTreeView + TWebBrowser...
1
4931 / 3840 / 1277
Регистрация: 14.04.2014
Сообщений: 17,719
Записей в блоге: 18
16.06.2017, 08:48 10
это единственный вариант, который точно работает на всех компьютерах
на втором месте PDF. Там уже придется что-то изобретать
и где-то далеко в конце всякие OLE
1
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 7
16.06.2017, 16:56  [ТС] 11
Вот немного подправил код и стало открываться
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.TreeView1DblClick(Sender: TObject);
var s: String;
begin
 f := TINIFile.Create(IniPath);
 if TreeView1.Selected.Level = 1
  then s := f.ReadString(TreeView1.Selected.Parent.Text, TreeView1.Selected.Text, '');
 if FileExists(s) then begin OleContainer1.CreateObjectFromFile(s,false);
  OleContainer1.DoVerb(ovShow)
  end
    else
    begin ShowMessage('Нет такого файла');
    end;
 f.Free;
end;
Добавлено через 46 минут
А как сделать возможность добавления родителя? ну и конечно удаление
0
Модератор
6791 / 4380 / 1874
Регистрация: 21.01.2014
Сообщений: 18,552
Записей в блоге: 3
17.06.2017, 16:35 12
Цитата Сообщение от mamaama00 Посмотреть сообщение
и стало открываться
mamaama00, это, конечно, хорошо, но трабл, возникающий при отсутствии на рабочей станции MS Office,
никуда не делся... Сейчас, в свете ужесточения борьбы с нелицензионным ПО, многие организации переходят на использование бесплатного OpenOffice и Ваш OLEContainer с ним работать просто не будет...
Цитата Сообщение от mamaama00 Посмотреть сообщение
как сделать возможность...
В моем примере все редактирование TreeView сводится к изменению ini-файла и перестроению дерева. Почитайте про работу с ini-файлами в Delphi, например, вот это...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2017, 16:35

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

Delphi и exel: работа с несколькими документами
Доброго времени суток=) я разрабатываю программку, которая будет работать с несколькими таблицами...

Работа с файловой системой (системное название некоторых папок и работа со скрытыми документами)
Всем привет, подскажите каким образом можно из VBA сохранить документ txt в папке &quot;Общие...

Работа с документами
Добрый вечер, ребята есть проблема. Нужно что-бы документ при вводе в форму сохранял свой вид а не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.