Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка VCL [D6, Win2k]


Сатир ©   (2002-11-28 14:18:00) 

Класс:TCollectionItem;
Ошибка: отображение свойства Caption в инспекторе объектов.
При наличии значения у данного свойства, инспектор отображает значение как "(unknown)"
Service Pack 2 for Delphi 6 не помог :(


Сатир   (2002-11-28 17:17:00) [1]

2Игорь Шевченко © (28.11.02 17:09)
на Петровке:)


Игорь Шевченко   (2002-11-28 17:09:00) [2]

На толкучке покупали ? (с) Двенадцать стульев


Сатир   (2002-11-28 17:05:00) [3]

Всё, вопрос снимается.
Значит, ситуация такая. На моей тачке стоит дистрибутив шефа, который был поставлен год назад. А на тачке рядом, стоит дистрибутив, который я купил месяц назад и там такого бага нет. Следовательно, дистрибутив шефа глючный.
Всем спасибо за внимание.


Сатир   (2002-11-28 16:40:00) [4]

2Юрий Федоров © (28.11.02 15:43)
у меня глюк есть
исходник тот же, кстати

Ок, тогда у кого ещё так глючит?


Юрий Федоров   (2002-11-28 15:43:00) [5]

У меня такого глюка нет, тот же Д6, кстати :

function TListColumn.GetDisplayName: string;
begin
Result := Caption;
if Result = "" then Result := inherited GetDisplayName;
end;


Сатир   (2002-11-28 14:48:00) [6]


TListColumn = class(TCollectionItem)
private
FAlignment: TAlignment;
FAutoSize: Boolean;
FCaption: string;
FMaxWidth: TWidth;
FMinWidth: TWidth;
FImageIndex: TImageIndex;
FPrivateWidth: TWidth;
FWidth: TWidth;
FOrderTag,
FTag: Integer;
procedure DoChange;
function GetWidth: TWidth;
function IsWidthStored: Boolean;
procedure ReadData(Reader: TReader);
procedure SetAlignment(Value: TAlignment);
procedure SetAutoSize(Value: Boolean);
procedure SetCaption(const Value: string);
procedure SetImageIndex(Value: TImageIndex);
procedure SetMaxWidth(Value: TWidth);
procedure SetMinWidth(Value: TWidth);
procedure SetWidth(Value: TWidth);
procedure WriteData(Writer: TWriter);
protected
procedure DefineProperties(Filer: TFiler); override;
function GetDisplayName: string; override;
procedure SetIndex(Value: Integer); override;
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
property WidthType: TWidth read FWidth;
published
property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
property AutoSize: Boolean read FAutoSize write SetAutoSize default False;
property Caption: string read FCaption write SetCaption;
property ImageIndex: TImageIndex read FImageIndex write SetImageIndex default -1;
property MaxWidth: TWidth read FMaxWidth write SetMaxWidth default 0;
property MinWidth: TWidth read FMinWidth write SetMinWidth default 0;
property Tag: Integer read FTag write FTag default 0;
property Width: TWidth read GetWidth write SetWidth stored IsWidthStored default 50;
end;

Этот же глюк получается, если делать наследников от TCollectionItem и добавлять в него строковые публичные свойства.
Вот пример:

TStyleColor = class(TCollectionItem)
private
fName:String;
fFormula: String;
fColor: TColor;
procedure SetName(const Value: String);
procedure SetFormula(const Value: String);
procedure SetColor(const Value: TColor);
protected
procedure SetDisplayName(const Value: string);override;
function GetDisplayName: string; override;
procedure CalculateColor;
public
constructor Create(Collection: TCollection); override;
procedure Assign(Source:TPersistent);override;
published
property Name: String read fName write SetName;
property Color: TColor read fColor;
property Formula: String read fFormula write SetFormula;
end;

Свойства Name и Formula в данном классе при отображении в инспекторе объектов и наличии ненулевых значение отображаются как "(unknown)"


Сатир   (2002-11-28 14:42:00) [7]

нет


Юрий Федоров   (2002-11-28 14:34:00) [8]

Вроде DisplayName используется для отображение в ОИ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо