Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизСохранение данных Найти похожие ветки
← →
Роман (2004-11-01 08:47) [0]Всем здрасьте.
Могу ли я зделать так:
type
TMyTree = record
Tree_1,Tree_2,Tree_3:TTreeView;
end;
.......
var
F: file of TMyTree;
begin
MyTr.Tree_1.LoadFromFile(Path+"tree.snt");
MyTr.Tree_2.LoadFromFile(Path+"tree_n.snt");
MyTr.Tree_3.LoadFromFile(Path+"tree_f.snt");
AssignFile(F,Path+"data.dat");
Rewrite(F);
Write(F, TreeList);
CloseFile(F);
При попытке загрузить файл выдает ошибку.
← →
Digitman © (2004-11-01 08:58) [1]прежде чем вызывать метод LoadFromFile() объекта класса TTreeView, необходимо создать этот объект.
← →
Роман (2004-11-01 13:26) [2]Так тоже ничего не получается...
var
F: file of TMyTree;
AOwner:TComponent;
begin
MyTr.Tree_1.Create(AOwner);
MyTr.Tree_2.Create(AOwner);
MyTr.Tree_3.Create(AOwner);
MyTr.Tree_1.LoadFromFile(Path+"tree.snt");
MyTr.Tree_2.LoadFromFile(Path+"tree_n.snt");
MyTr.Tree_3.LoadFromFile(Path+"tree_f.snt");
AssignFile(F,Path+"data.dat");
Rewrite(F);
Write(F, MyTr);
CloseFile(F);
← →
Sam Stone © (2004-11-01 13:37) [3]Tree_1,Tree_2,Tree_3:TTreeView; - это указатели на объекты. (SizeOf(Tree_1)=4байта)
Чтобы сохранить структуру дерева (а ведь там дерево?), необходимо обойти все элементы и сохранить их.
← →
Роман (2004-11-01 13:41) [4]>Sam Stone
Не понял.
Т.е. создать цикл и пробежаться по всем веткам дерева? А как их сохранять?!
← →
begin...end © (2004-11-01 13:43) [5]
> [2] Роман (01.11.04 13:26)
> MyTr.Tree_1.Create(AOwner);
Это переинициализация, а не создание.
> AOwner:TComponent;
Непонятно.
А вообще - см. [3].
← →
Роман (2004-11-01 14:04) [6]Что-то никак не получается. Видать не то делаю.
Ребят, может кодом поможете?
← →
Роман (2004-11-01 14:36) [7]Народ. Ну тут то что ей постылой надо???
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;
type
TMy = record
Adress:string;
SxCount:byte;
SxPathArray:array[1..30]of string;
SxNameArray:array[1..30]of string;
MemoPrim:TStrings;
end;
type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
SpinEdit1: TSpinEdit;
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Datt:TMy;
Stt:TStream;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Append(timetostr(time)+" Äëÿ ïåâîãî");
ListBox1.Items.Append(timetostr(time)+" Äëÿ âòîðîãî");
Memo1.Lines.Append(timetostr(time)+" Äëÿ Memo");
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
io:byte;
F: file of TMy; <----------- ошибка тут
begin
Datt.MemoPrim:=TStrings.Create;
Memo1.Lines.SaveToStream(Stt);
Datt.MemoPrim.LoadFromStream(Stt);
Datt.Adress:=Edit1.Text;
Datt.SxCount:=SpinEdit1.Value;
io:=1;
while io<>ListBox1.Items.Count+1 do
begin
Datt.SxPathArray[io]:=ListBox1.Items.Strings[io];
Datt.SxNameArray[io]:=ListBox2.Items.Strings[io];
inc(io);
end;
AssignFile(F,"data.dat");
Rewrite(F);
Write(F, TMy);
CloseFile(F);
end;
end.
выдает ошибку
Type TMy needs finalization - not allowed in file type
← →
Cooler (2004-11-01 14:46) [8]Малый не парься. Используй INI/
← →
Cooler (2004-11-01 14:47) [9]Малый не парься. Используй INI/
← →
Mailer (2004-11-01 15:22) [10]Вместо string надо PChar и еще вместо Write(F, TMy); надо Write(F, Datt);
← →
Роман (2004-11-01 15:35) [11]ЛЮДИ ТАК КАК ВСЕ ТАКИ СОХРАНИТЬ ДАННЫЕ НАБРАННЫЕ ПОЛЬЗОВАТЕЛЕМ А ПОТОМ ИХ ПРОЧЕСТЬ???????????
ПОМОГИТЕ
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c