Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.02 c
14-1134584951
Gero
2005-12-14 21:29
2006.01.08
IDE для C#


3-1131967989
Max Zyuzin
2005-11-14 14:33
2006.01.08
SQL запрос выполняется непонятно как...


11-1116458973
AK Delfin
2005-05-19 03:29
2006.01.08
Забавная ситуация с TKolImageList.Delete ()


9-1122572178
Kslaruovon
2005-07-28 21:36
2006.01.08
Анимация в Opengl


14-1134372111
Pave/\
2005-12-12 10:21
2006.01.08
Citrix