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

Вниз

Не запоминается Property.   Найти похожие ветки 

 
TransparentGhost   (2004-03-29 11:47) [0]


Type
 TADSheetStyle=(ShDbGrid, ShSheet);

 TADSheet = class(TScrollBox)
 private
    FSheetStyle:TADSheetStyle;
    FDefRowHeight:Word;
    FDefColWidth:Word;
    FImage:TImage;
    FCells:TADCellsArr;
    FRowHeights:TADRowHeights;
    FColWidths:TADColWidths;
    FSelection:TADSelectionList;
 protected
    ....
 public
    Constructor Create(AOwner: TComponent); override;
    Destructor Destroy; override;
    Procedure Paint;
 published
    Property SheetStyle:TADSheetStyle Read FSheetStyle Write FSheetStyle Default ShSheet;
 end;


Кидаю на форму компонент - SheetStyle=ShDbGrid,
меняю на ShSheet - при переоткрытии проекта опять SheetStyle=ShDbGrid.
Как с этим бороться?


 
Reindeer Moss Eater ©   (2004-03-29 11:49) [1]

Если проперти объявлена с default то дефолт значение надо присваивать в конструкторе. Иначе зачем deafult?


 
Семен Сорокин ©   (2004-03-29 11:50) [2]

TransparentGhost   (29.03.04 11:47)  
Покажи весь код


 
Ricks ©   (2004-03-29 11:50) [3]

Может быть это связано с defaul?


 
Reindeer Moss Eater ©   (2004-03-29 11:52) [4]

Покажи весь код
Он и так понятен исходя из
Кидаю на форму компонент - SheetStyle=ShDbGrid,
меняю на ShSheet - при переоткрытии проекта опять SheetStyle=ShDbGrid


 
Семен Сорокин ©   (2004-03-29 11:56) [5]

именно констркутор интересует


 
TransparentGhost   (2004-03-29 12:05) [6]

Constructor TADSheet.Create(AOwner: TComponent);
Var
  Ii:Word;
Begin
 Inherited Create(AOwner);
 Width:=250;
 Height:=150;
 FDefRowHeight:=22;
 FDefColWidth:=60;
 VertScrollBar.Tracking:=True;
 HorzScrollBar.Tracking:=True;

 If GetClass("TImage")=Nil then
    RegisterClass(TImage);

 FImage:=TImage.Create(Self);
 FImage.Parent:=Self;
 FImage.Top:=0;
 FImage.Left:=0;
 FImage.Width:=800;
 FImage.Height:=600;
End;

У меня есть и другой компонент, там около десятка подобных Property, ни одному из них не задаю значения в конструкторе, всё через Default. Всё работает нормально (и изначально правильно выставляет и запоминает изменения), и только с двумя подобная лажа.


 
mrcat ©   (2004-03-29 12:08) [7]

само наличие Default в коде не подразумевает "использовать по умолчанию" ...

сonstructor TADSheet.Create(AOwner: TComponent);
...
begin
...
 FSheetStyle := что_то_там;
end;


 
TransparentGhost   (2004-03-29 12:10) [8]

Хмм... добавил в Create - всё нормально... но тогда вааще зачем нужен этот Default?


 
Reindeer Moss Eater ©   (2004-03-29 12:12) [9]

Что бы DFM не разбухал без надобности


 
TransparentGhost   (2004-03-29 12:19) [10]

Если установленное значение = Default, тогда в ДФМ не пишет?

Но почему без задания значения в Create - не всегда сохраняются заданные значения? Это мои глюки или Делфи или ещё чьи?


 
Reindeer Moss Eater ©   (2004-03-29 12:23) [11]

Значения свойства равные Default значению не записываются в DFM.
Вот и все.



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1080713247
tivispider
2004-03-31 10:07
2004.04.18
Компиляция проекта в командной строке


7-1076620965
salex
2004-02-13 00:22
2004.04.18
Чтение HDD SMART


1-1081008074
DADUD
2004-04-03 20:01
2004.04.18
Удаление ресурсов


11-1061462101
Экселенц
2003-08-21 14:35
2004.04.18
free pascal


14-1080407900
DillerXX
2004-03-27 20:18
2004.04.18
Кот