Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизDefineProperties ? Найти похожие ветки
← →
Bannikov (2004-02-16 11:52) [0]Пишу форму в стрим и получается с некоторыми свойствами проблемы, например:
object SpeedButton1: TSpeedButton
Left = 145
Top = 84
Width = 25
Height = 25
Flat =
end
Видите: Flat и нет значения.
Это понимать как то, что Борланды не определили чем писать/читать? Или что? И вообще, таких моментов много набирается. И у формы, например, KeyPriview и т.д., и у других компонентов...
С уважением, Николай.
← →
MBo (2004-02-16 12:20) [1]Не воспроизводится.
Либо пишется
Flat = True
либо нет вообще этой строчки (поскольку у этого свойства есть спецификатор default False)
← →
Bannikov (2004-02-16 13:51) [2]Нашел.
В Delphi3 точно есть бага. В Delphi7 точно нет.
Короче, GetEnumName был у Борландов с ошибкой в тройке. Там такая неправильность:
function GetEnumName(TypeInfo: PTypeInfo; Value: Integer): string;
var
P: ^ShortString;
T: PTypeData;
begin
T := GetTypeData(GetTypeData(TypeInfo)^.BaseType^);
if T^.MinValue < 0 then { must be LongBool/WordBool/ByteBool }
Value := Ord(Value <> 0); { map non-zero to true in this case }
P := @T^.NameList;
while Value <> 0 do
begin
Inc(Integer(P), Length(P^) + 1);
Dec(Value);
end;
Result := P^;
end;
Но, как известно, T^.MinValue = -1, а т.к. это ByteBool, то 255, а значит больше нуля :-) Т.е. для boolean никогда не выполняетя. Надо еще проверить на TypeInfo = System.TypeInfo(Boolean)... Да уж.
С уважением, Николай.
← →
Юрий Зотов (2004-02-16 14:03) [3]> Bannikov (16.02.04 13:51) [2]
> GetEnumName был у Борландов с ошибкой в тройке
Тогда совершенно непонятно, каким же это образом сама Delphi, пользуясь той же самой GetEnumName, тем не менее, умудряется все сохранять правильно.
← →
Bannikov (2004-02-16 14:45) [4]Происки врагов...
Видимо, pas не соответствует dcu, а черт меня дернуть перекомпилять.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c