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

Вниз

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

 
dim- ©   (2002-09-29 21:15) [0]

Как можно сохранить форму со всеми компонентами, делаю перебор всех компонентов, но чтобы сохранить например ширину кнопки делаю: TBUTTON(tmpform.Components[I]).Width, а как сделать универсально?


 
Юрий Зотов ©   (2002-09-29 22:23) [1]

WriteComponentResFile("Form1.sav", Form1);

И все. Одна строка. Универсально. Но сохраняет только published-свойства и события - как и сама Delphi.


 
dim- ©   (2002-09-30 00:36) [2]

Спасибо, сохранять получается, но сохраняет не все.
Я добавил свою переменную к компоненту
type TButtonD=class(TButton)
constructor Create(AOwner: TComponent); override;
public
Funct:tstringList
end;
вот ее и не восстанавливает почему-то


 
Туберкулез   (2002-09-30 02:07) [3]

Что значит "почему-то"? Читайте внимательнее:

"Но сохраняет только published-свойства и события - как и сама Delphi".

Если нужно сохранять public или что угодно еще, заместите метод DefineProperties и напишите к нему методы Read и Write. Примеры возьмите в VCL.



 
dim- ©   (2002-09-30 09:09) [4]

если вместо public ставлю published все равно не сохраняет


 
Юрий Зотов ©   (2002-09-30 09:48) [5]

1. С каким владельцем создается кнопка?
2. В момент сохранения Funct долежен быть создан и не пустой.


 
dim- ©   (2002-09-30 10:26) [6]

владелец форма и Funct создан и текст имеет


 
Юрий Зотов ©   (2002-09-30 14:49) [7]

Так не бывает. Показывайте код.


 
dim- ©   (2002-09-30 20:39) [8]

Кнопка создается компонентом ExtLib2_1

type TButtonD=class(TButton)
constructor Create(AOwner: TComponent); override;
published
Funct:tstringList;
end;
...
constructor TButtonD.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Funct:=tstringList.Create;
end;
...
tmpform:=tform.Create(Application);
...
TButtonD(ELDesigner1.SelectedControls.Items[0]).Funct.Assign(form4.Memo1.Lines);
WriteComponentResFile(SD1.FileName, tmpform);
...
ReadComponentResFile(od1.FileName, tmpform);



 
Старый паскалист   (2002-09-30 22:45) [9]

Так сохраняются только опубликованные свойства.
А Funct у тебя - поле, а не свойство.
Нужно написать так:

type

TButtonD=class(TButton)
private
FFunct: TStringList;
//лучше TStrings - а при создании := TStringList.Create;
public
constructor Create(AOwner: TComponent); override;
published
property Funct:TStringList read FFunct write SetFunct{FFunct.Assign(...)};

end;



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

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

Наверх




Память: 0.48 MB
Время: 0.021 c
4-32054
Igor__
2002-08-22 15:27
2002.10.10
WindowProc


1-31709
Ne0N
2002-09-30 19:09
2002.10.10
Как создать файл собственного типа?


1-31771
Valeris
2002-10-01 18:39
2002.10.10
Програмный пинг


1-31825
Igel
2002-09-27 14:18
2002.10.10
Автоматизация загрузки


1-31844
maxi-mov
2002-09-22 16:41
2002.10.10
Как перенести файл с одного каталога в другой?