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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
1-94023
Zvr@b
2004-02-16 21:35
2004.02.29
Как запретить пользователю вводить определённый символ (


1-93887
Serge
2004-02-16 09:42
2004.02.29
32 x 16 Icon in TrayBar


3-93756
Garmahis
2004-02-03 11:54
2004.02.29
Sybase


1-93916
external
2004-02-15 15:45
2004.02.29
сравнение массивов


3-93818
Zelius
2004-02-04 12:23
2004.02.29
Помогите разобраться, от чего выскакивает ошибка?