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

Вниз

Сохранение данных   Найти похожие ветки 

 
Роман   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1099309330
Igor_
2004-11-01 14:42
2004.11.14
CONSOLE APPLICATION


1-1099397617
Koala
2004-11-02 15:13
2004.11.14
ProgressBar в Dll


14-1099068698
aga
2004-10-29 20:51
2004.11.14
как можно найти ключ?


3-1097587001
S@shka
2004-10-12 17:16
2004.11.14
Запрос на выборку


8-1091870029
ИМХО
2004-08-07 13:13
2004.11.14
Проверка Text-to-Speech