Главная страница
    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.47 MB
Время: 0.008 c
1-1133925432
AlexanderS
2005-12-07 06:17
2006.01.08
Динамическое сжатие данных в памяти


6-1127413206
DelmaR
2005-09-22 22:20
2006.01.08
Список ресурсов удаленного компьютера


5-1120815943
hair
2005-07-08 13:45
2006.01.08
иерархический dbgrid


6-1127653656
VolanD666
2005-09-25 17:07
2006.01.08
Обмен файлами по сети


3-1131976154
КодеКорешь
2005-11-14 16:49
2006.01.08
Ограничение числа записей в таблице





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский