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

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

Свойство для поля 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]

И вообще, какие типы данных поддерживаются в инспекторе объектов?


Наверх

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