Текущий архив: 2006.01.08;
Скачать: CL | DM;
Внизопять treeview Найти похожие ветки
← →
Новенькая (2005-12-21 12:38) [0]Подскажите пжлста что не так делаю???надо в treeview загрузить из OpenDialog файл
type
InfoDoc = record
IndexDoc: integer;
DirDoc: string;
end;
var
INFO: InfoDoc;
index_list: array of integer;
procedure AddingDocument;
begin
Form1.TreeView1.Items.Add (Form1.TreeView1.Selected, Form1.OpenDialog2.FileName);
index_list [INFO.IndexDoc] := Form1.TreeView1.Selected.Index;
INFO.DirDoc := Form1.OpenDialog2.FileName;
end;
файл загружает но ошибку выдает что не так???
потом мне надо при щелке на эту ноду с файлом загрузить содержимое файла в RICH EDIT я пишу
for i:= 1 to 100000 do
IF Index_list [i] = TreeView1.Selected.Index
then RichEdit1.Lines.LoadFromFile (INFO.DirDoc);
неверно скорей всего.как загрузить правильно?
← →
Johnmen © (2005-12-21 12:42) [1]1. >ошибку выдает
Ошибка секретная?
2. Индексы динамического массива начинаются с 0.
3. И где вообще выделение памяти под дин.массив???
← →
Новенькая (2005-12-21 19:05) [2]ошибка Access Violation. а как память выделять я не понимаю. create наверное. но что создавать?не понимаю
← →
з. танька (2005-12-21 20:17) [3]
> Новенькая (21.12.05 19:05) [2]
у тебя там динамический массив не инициализируется
попробуй так:procedure AddingDocument;
begin
Form1.TreeView1.Items.Add (Form1.TreeView1.Selected, Form1.OpenDialog2.FileName);
SetLength(index_list, Length(index_list)+1);
index_list [INFO.IndexDoc] := Form1.TreeView1.Selected.Index;
INFO.DirDoc := Form1.OpenDialog2.FileName;
end;
← →
з. танька (2005-12-21 20:21) [4]а откуда значение INFO берется?
← →
Новенькая (2005-12-21 21:31) [5]Спасибо за SetLength:)). INFO - это запись с двумя полями IndexDOc и DIrDoc.
А как потом после заполнения, в другой процедуре если я знаю INFO.IndexDOc получить INFO.DirDoc?мне надо
for i:= 0 to Length (index_list) do begin
if TreeView1.Selected.Index = index_list [i] then
RIchEdit1.Lines.LoadFromFile(и тут по идее содержимое INFO.DirDoc)
← →
з. танька (2005-12-21 22:12) [6]
> Новенькая (21.12.05 21:31) [5]
опиши свою задачу целиком.
то что у тебя сейчас - это сумбур какой то.
← →
Новенькая (2005-12-21 22:36) [7]есть массив динамический, составленный из индексов treeview(index_list:array of integer). Индексы являются полем записи
InfoDoc = record
IndexDoc: integer;
DirDoc: string;
end;
т е в массиве записаны индексы из treeview.
данные заполняю
index_list [INFO.IndexDoc] := Form1.TreeView1.Selected.Index;
INFO.DirDoc := Form1.OpenDialog1.FileName;
INFO.IndexDoc := Form1.TreeView1.Selected.Index;
как продолжить правильно
procedure TForm1.TreeView1DblClick(Sender: TObject);
...
for i:= 0 to Length (index_list) do begin
if TreeView1.Selected.Index = index_list [i] then
RichEdit1.Lines.LoadFromFile (путь до файла который храниться в записи - INFO.DIR);
end;
...
← →
з. танька (2005-12-21 22:44) [8]
> Новенькая (21.12.05 22:36) [7]
не.. ты напиши что в конечном итоге получиться должно :)
типа "есть то и это, тыкаю туда - загружается это а там получается такая то штука" ну в общем техническое задание. потому что програма твоя жуткая какая то сложно мне её понять.
← →
Новенькая (2005-12-21 23:11) [9]Есть TreeView и есть RichEdit. в дереве пользователь создает папки, подпапки, вставляет документы текстовые, которые при DBLCLICK на ноде отображаются в treeview. когда я заношу в дерево файл, то заношу в динамический массив индекс ноды, чтоб потом при DBLCLICK по индексу найти путь к файлу.
а может неправильно
index_list [INFO.IndexDoc] := Form1.TreeView1.Selected.Index; ???
← →
з. танька (2005-12-22 00:24) [10]во-первых, тебе надо заносить в массив и индекс, и путь к файлу. так шо объяви массив: array of INFO - типом твоей записи.
остальное будет выглядеть так:
//запоминаем шо где:
setlength(index_list, Length(index_list)+1) ;
index_list [High(index_list)].IndexDoc := Form1.TreeView1.Selected.Index;
index_list [High(index_list)].DirDoc := Form1.OpenDialog1.FileName;
//High - это функция она возвращает номер последнего элемента в массиве!
//даблкличем твою ноду:
procedure TForm1.TreeView1DblClick(Sender: TObject);
...
for i:= 0 to High(index_list) do begin
if TreeView1.Selected.Index = index_list[i].IndexDoc then
RichEdit1.Lines.LoadFromFile (index_list[i].DirDoc);
end;
...
вот примерно так.
незнаю может ошибки есть - спать охота блин
Страницы: 1 вся ветка
Текущий архив: 2006.01.08;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c