Форум: "Основная";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
ВнизInvalid type cast Найти похожие ветки
← →
DimaBr (2006-08-03 18:59) [0]Создал класс, дабы не сохранять свойство в ресурсе.
TMyFont = class(TFont)
private
function IsCustomName: boolean;
published
property Charset default DEFAULT_CHARSET;
property Color default clWindowText;
property Height default -11;
property Name stored IsCustomName;
property Style default [];
end;
При объявлении свойства это типа в дизайнере возникает ошибка приведения типов, почему никак не могу понять.
property Font: TMyFont read GetFont write SetFont;
function TMyComponent.GetFont: TMyFont;
begin
Result := fLabel.Font as TMyFont; // <- ошибка
Result := TMyFont(fLabel.Font); // <- нет ошибки
end;
← →
Ketmar © (2006-08-03 19:24) [1]нельзя "повышать" тип. можно только "понижать". т.е. as тут "не канает".
← →
Суслик © (2006-08-04 00:21) [2]
> Result := TMyFont(fLabel.Font); // <- нет ошибки
нет ошибки компиляции, но runtime накажет :)
← →
DimaBr (2006-08-04 09:16) [3]
> Ketmar ©
Так что, написать функцию "повышения" ?
function FontAs(Value: TFont): TMyFont;
begin
Result := TMyFont.Create;
Result.Charset = Value.Charset;
....
end;
← →
Ketmar © (2006-08-04 10:05) [4]типа того. это корректней. %-)
← →
Alekcvp © (2006-08-04 10:28) [5]
> Result := TMyFont(fLabel.Font);
Result.Assign(fLabel.Font) ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c