![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свойство для поля array[0..20] of char [D7, XP]
Очень злой © (2012-03-14 00:16:00)Имеется поле типа packed array[0..20] of char
и нужно в компоненте приделать к нему свойство
Желательно (но в крайнем случае можно и по другому, если посоветуете), чтобы его значение в инспекторе объектов отображалось в виде, например: 5F 3B 35 2E 5D 39 34 2D 33 31 3D 3D 2D 25 78 54 21 5E 5B 24 00
Делаю так:
TLС4 = class (TComponent)
private
...
FToken:packed array[0..20] of char;
...
procedure SetToken(Value:string);
function GetToken:string;
public
...
published
...
property Token:string read GetToken write SetToken;// default '5F 3B 35 2E 5D 39 34 2D 33 31 3D 3D 2D 25 78 54 21 5E 5B 24 00';
end;
...
procedure TLС4.SetToken(Value:string);
var
i,k:integer;
begin
k:=(length(value)+1) div 3;
for i:=0 to k-1 do FToken[i]:=chr(strtointdef('$'+value[i*3+1]+value[i*3+2],0));
for i:=k to 20 do FToken[i]:=chr(0);
end;
function TLС4.GetToken:string;
var
i:integer;
begin
result:=IntToHex(ord(Ftoken[0]),2);
for i:=1 to 20 do result:=result+' '+IntToHex(ord(Ftoken[i]),2);
end;
Но не получается приделать ему дефолтное значение.
Как лучше это сделать? присваивать в конструкторе?
Anatoly Podgoretsky (2012-03-14 15:59:00) [1]> Slym (14.03.2012 15:20:06) [6]
Только за значение по умолчанию, а сохранение или нет побочный фактор
За сохранение отвечает Stored (Storage specifiers)
Slym (2012-03-14 15:20:00) [2]default отвечает за сохранение в DFM
если совпало - не сохранять
иначе сохранить
Anatoly Podgoretsky (2012-03-14 07:58:00) [3]> Очень злой (14.03.2012 00:16:00) [0]
Инициализация свойств по умолчанию делается в Create
Очень Злой (2012-03-14 02:14:00) [4]
> Какой нафиг "packed array" в Д7?
Один раз когда-то наступил на грабли. Теперь всегда пишу packed, в любом случае, надо или не надо, но чтобы быть на 100% уверенным, что компилятор меня правильно понял. :)
Германн (2012-03-14 02:01:00) [5]
> Имеется поле типа packed array[0..20] of char
Какой нафиг "packed array" в Д7?
_oxffff (2012-03-14 00:41:00) [6]http://www.drbob42.com/delphi/property.htm
Очень злой (2012-03-14 00:17:00) [7]И вообще, какие типы данных поддерживаются в инспекторе объектов?