Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.047 c
14-1098871416
Чапер
2004-10-27 14:03
2004.11.14
Компоненты


4-1096874938
onyx
2004-10-04 11:28
2004.11.14
Прозрачное окно в Win 9x


4-1096901315
bgs
2004-10-04 18:48
2004.11.14
Добавить пользователя в вин 2000 средствами делфи


4-1096915697
Klopan
2004-10-04 22:48
2004.11.14
Обновить часть экрана.


14-1098882421
SPeller
2004-10-27 17:07
2004.11.14
А у нас отопление дали





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