![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение формы [D6, Win95/98]
dim- © (2002-09-29 21:15:00)Как можно сохранить форму со всеми компонентами, делаю перебор всех компонентов, но чтобы сохранить например ширину кнопки делаю: TBUTTON(tmpform.Components[I]).Width, а как сделать универсально?
Старый паскалист (2002-09-30 22:45:00) [1]Так сохраняются только опубликованные свойства.
А 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;
dim- (2002-09-30 20:39:00) [2]Кнопка создается компонентом 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 14:49:00) [3]Так не бывает. Показывайте код.
dim- (2002-09-30 10:26:00) [4]владелец форма и Funct создан и текст имеет
Юрий Зотов (2002-09-30 09:48:00) [5]1. С каким владельцем создается кнопка?
2. В момент сохранения Funct долежен быть создан и не пустой.
dim- (2002-09-30 09:09:00) [6]если вместо public ставлю published все равно не сохраняет
Туберкулез (2002-09-30 02:07:00) [7]Что значит "почему-то"? Читайте внимательнее:
"Но сохраняет только published-свойства и события - как и сама Delphi".
Если нужно сохранять public или что угодно еще, заместите метод DefineProperties и напишите к нему методы Read и Write. Примеры возьмите в VCL.
dim- (2002-09-30 00:36:00) [8]Спасибо, сохранять получается, но сохраняет не все.
Я добавил свою переменную к компоненту
type TButtonD=class(TButton)
constructor Create(AOwner: TComponent); override;
public
Funct:tstringList
end;
вот ее и не восстанавливает почему-то
Юрий Зотов (2002-09-29 22:23:00) [9]WriteComponentResFile("Form1.sav", Form1);
И все. Одна строка. Универсально. Но сохраняет только published-свойства и события - как и сама Delphi.