Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

Как связать ветки 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 вся ветка

Текущий архив: 2004.03.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
6-12474
Vilux
2003-12-28 05:47
2004.03.05
Timeout в сокетах


1-12376
Kair
2004-02-19 08:01
2004.03.05
Прилипание окна к краям раб. стола


9-12222
NailMan
2003-08-15 17:19
2004.03.05
Консоль в игре и множество настраиваемых параметров


14-12504
copyr25
2004-02-11 20:17
2004.03.05
Кто знает своих прародителей?


1-12391
Гарри Поттер
2004-02-24 21:54
2004.03.05
Key = VK_1 //ошибка