Защо етикет имот

Защо Tag имот

Много компоненти имат Tag собственост. Какво е това?
Мога ли да я запазите като указател към обекта са пълни?


> AL1 # XA0; (23.11.04 21:14)


> Мога ли да го имам за пример, за да се запази указател към обекта са пълни?

Може ли.

И тук е откъс от доклада:

Tag собственост (TComponent)

Tag не е предварително определен смисъл. Имотът се намира етикетът е предвидено за удобство на разработчиците. Тя може да се използва за съхранение на допълнителна стойност цяло число или може да се typecast всяка 32-битова стойност като компонент позоваване или указател.


> Tag не е предварително определен смисъл. Имотът се намира етикетът е предвидена
> За удобство на разработчиците

Възможно ли е за руски? Благодаря.

Принципът вече е отговорено. Но не е ясно дали "не можем", мога да кажа, че sabzhevoy имот не се използва от самия обект и е предназначена единствено за потребителя да се държи там данните, ако е необходимо.

"Tag не е предварително определена дестинация"

защото първоначалното значение (и това е как аз разбирам "предварително определен") той просто е като всяка друга област на обекта - 0.

За насоки - вие трябва да бъдете внимателни. Един от 2 проблеми Delphi, за които знам, че е свързан с показалеца на склад в Сен съм Tag

Създаване на динамични бутони, като щракнете върху тях, е необходимо да се направи нещо. Основна информация за това е нещо, което се съхранява някъде в паметта, тя е указател. Той пише в Saint-Tag в индекса, но в събитието манипулатор TMyType (Tag) посочи някъде, където е необходимо да се напълно по грешен начин, а в някои съвсем различно място в паметта, където желаните данни, вместо да ми лежаха нещо друго. Оказа AV.

Фактът, че указателите, които направих всичко по силите си - Обзалагам. На други места, че проектът не е имал никакви проблеми, когато работят с тези данни. Ако показалеца на запис в маркера и намек: = inttostr (), след което водачът е получила валидно показалка. Така че какъв е проблемът с таг "беше ти.

Какъв е проблемът - обсъжда тук, но до какво nedoobsuzhdalis. Реших случая, като напишете своя приемник от TButton, което добавя St-в - показалка, която трябва да се съхранява. Той заслужи.

По мое мнение, проблемът не е с етикет. Във всеки случай, ако се съди по # XA0; # XA0;
имот Tag: Longint прочетете FTag напиши FTag подразбиране 0;
частен # XA0; # XA0; FTag: Longint;
и
Mov [EBX + $ 0 °], given_tag_value,
който е предаването
Tag: = given_tag_value;

Би било интересно да се намери, че нишката, опитайте се да се търси.


> AL1 # XA0; (23.11.04 21:14) # XA0;
> Много от компонентите имат Tag имота. Какво е това?
> Мога ли да го имам за пример, за да се запази указател към обекта са пълни?

> Създава меню се генерират по време на работа и нейните елементи. Hehochetsya за всеки
> Точка "А създавате манипулатор OnClick. Е, как да го направят
> Когато кликнете върху някоя контролна точка от менюто е преминал през същата процедура
> Има и да намерят кликнали каталожен номер.

TMainMenu и TPopupMenu имат артикули имот, който стои за TMenuitem
който служи като майка за всички останали TMenuitems на това меню. с помощта на
TMenuItems майка имот можете да се разхождате до Скриване верига, докато не намерите
това TMenuitem.

За съжаление по пътя към потомък TMenu която притежава позиции Скриване е
не е толкова лесно. Най-добрият подход е да добавите малко код, за да си форми
OnCreate събитие, което просто съхранява позоваването TMenus в Tag имота
от нейните елементи.

// Това манипулатор се възлага на всички menuitems OnClick събитие
процедура TForm1.AllmenusClick (Sender: TObject);
Var
# XA0; елементи: TMenuItem;
започвам
# XA0; елементи: = Sender Както TMenuitem;
# XA0; Докато items.Parent <> нула правя
# XA0; # XA0; елементи: = items.Parent;
# XA0; Ако items.Tag <> 0 след това да започне
# XA0; # XA0; label1.caption: = TMenu (items.tag) .name;
# XA0; # XA0; Ако TObject (items.tag) е TPopupMenu Тогава
# XA0; # XA0; # XA0; label2.caption: = TPopupmenu (items.tag) .PopupComponent.Name
# XA0; # XA0; останало
# XA0; # XA0; # XA0; label2.caption: = "";
# XA0; край;
приключи;

процедура TForm1.FormCreate (Sender: TObject);
Var
# XA0; и: цяло число;
започвам
# XA0, защото: = 0 до componentcount-1 направи
# XA0; # XA0; ако компоненти [Ь] е TMenu тогава
# XA0; # XA0; # XA0; TMenu (компоненти [Ь]) .Items.Tag: = цяло число (компоненти [Ь]);
приключи;

--
Петър долу (TeamB)


> Би било интересно да се намери, че нишката, аз се опитвам да гледам

Това беше преди няколко месеца. Сега го няма. Но мога да изпратите код, който имаше проблеми.