Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Вниз

опять 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-1133433853
Дмитрий_05
2005-12-01 13:44
2006.01.08
ListBox убрать рамку в выделенной строке


14-1134396057
VirEx
2005-12-12 17:00
2006.01.08
синхронизация потоков в API


14-1134555913
dr Tr0jan
2005-12-14 13:25
2006.01.08
Очень нужна книжка


6-1127327378
Den12
2005-09-21 22:29
2006.01.08
Используя что создать web-приложение?


2-1134752863
fast2
2005-12-16 20:07
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский