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

Вниз

Как связать ветки TreeView c полями записи   Найти похожие ветки 

 
SH   (2003-12-29 13:36) [0]

Имеется типизированный файл с записями след. структуры:
------------
TBase = Record
FileName,Group:array[0..255] of char;
Date:TDate;
NumZ:integer;
end;

-------------
На основе типиз. файла генерится дерево, его ветви - имена файлов без пути.
Как сделать, чтобы при щелчке на имени файла в дереве, из тип. файла подзагружалась нужная запись, оттуда бралось полное имя (поле FileName), и файл с этим именем выводился в Memo?


 
YuRock   (2003-12-29 14:49) [1]

У каждого TreeView-итема (TTreeNode) есть свойство Data (тип Pointer), куда ты можешь записывать указатели на структуры типа TBase.

Только для каждой новой структуры создавай ее ч-з GetMem. Удалять по-моему не надо (винда сама удалит).

Только создавай каждую структуру ч-з AllocMem(SizeOf(TBase)) (примерно так):

type
PBase = ^TBase;

procedure Load;
var
Data: PBase;
Node: TTreeNode;
begin
while not Eof(f) do begin
Data := AllocMem(SizeOf(TBase));
Read(f, Data);
...
Node := TreeView1.Items.Add(nil, String(Data.FileName));
Node.Data := Data;
end;
Data =
end;

// Событие смены текущего итема
procedure ... (Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node) and Assigned(Node.Data) then
Memo1.Lines.LoadFromFile(PBase(Node.Data).Group);
end;



 
YuRock   (2003-12-29 14:52) [2]

Извини за неточный пример (есть синтаксические ошибки и троеточия). Естественно, нужно еще открыть и закрыть файл в процедуре Load.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.01 c
14-12520
juicenman
2004-02-12 11:36
2004.03.05
распознавание тескта


14-12488
4i
2004-02-13 16:43
2004.03.05
Алгоритмы


1-12367
Andy
2004-02-25 09:21
2004.03.05
Help to Help


14-12487
syte_ser78
2004-02-12 10:17
2004.03.05
Загрузка процессора


1-12360
Mur_r
2004-02-25 13:18
2004.03.05
Библиотеки статистической обработки данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский