Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
ВнизСохранение формы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c