Jump to content
Sign in to follow this  
Volk65

Добавить свойство Tag

Recommended Posts

День добрый!

Большая просьба добавить свойство Tag в кнопки панели навигации (TfgNavigationBarButton если я ничего не путаю).

 

05_01.png

Share this post


Link to post
Share on other sites

Здравствуйте.

Для идентификации кнопки в данном случае служит свойство Name

    /// <summary>Имя, которое можно использовать для идентификации кнопки на уровне кода.</summary>
    property Name: string read FName write FName;

 

Share this post


Link to post
Share on other sites

Хотелось бы понять, для каких целей нужно свойство Tag в этих кнопках? Добавить не проблема, но хочется понимать идею.

Share this post


Link to post
Share on other sites

МикроФреймворк. Фреймы. В каждый фрейм приходит сообщение "FM_SHOW", после чего фрейм выполняет процедуру "главного окна" - добавь в меню "такой-то" пункт а в тэг записывается код фрейма. После закрытия фрейма "главное окно" атоматически удаляет пункты из меню (панели навигации) по коду фрейма записанного в тэге. Сейчас я использую код фрейма в имени TfgNavigationBarButton и выглядит это так: 1_Item1, 1_NewItem, 2_Item1, 2_MoreItem

 

Share this post


Link to post
Share on other sites
1 hour ago, Volk65 said:

в тэг записывается код фрейма

Код целочисленный, строковый или это вообще объект?

Share this post


Link to post
Share on other sites
Posted (edited)

Такой же как и  у остальных контролов. NativeInt ? У меня лично это целочисленный.

Edited by Volk65

Share this post


Link to post
Share on other sites
В 08.05.2020 в 14:37, Yaroslav Brovin сказал:

Хотелось бы понять, для каких целей нужно свойство Tag в этих кнопках? Добавить не проблема, но хочется понимать идею.

Я тэги использовал когда работал с с данными из субд, например в dbedit/edit и прочие компоненты в тэги писал id данных для более быстрого доступа, Разрешения выбора данных и т.д.

 в фаст репорте тэги строковые, вообще кучу инфы вспомогательной можно записать, какие то данные через точку с запятой для последующего использования, так что тэги не нужно недооценивать, кто плотно сложными учетными системами занимался, подтвердят (Хотя это не точно 🙂 ). Например какие варианты подотчётов можно вызвать, или колонка с артикулом товара, артикул это одно а Id товара/клиента/склада это другое (я например использую гуиды) И в тэги это превосходно ложится.

тэги типа интегер менее востребованы, точнее менее функциональны, а от вариантные куда я могу уложить что угодно (понятно что в разумных пределах) было бы просто супер, но как практика показала строковой тэг на 99 процентов покрывает его функциональное предназначение.

сейчас в firemonkey этого нет, поэтому я использовал в listview просто скрытые итемы для передачи id значений, что несколько неправославно так сказать

поэтому ещё раз повторюсь, тэг очень важен

Share this post


Link to post
Share on other sites
13 часов назад, maximus-78 сказал:

Я тэги использовал когда работал с с данными из субд, например в dbedit/edit и прочие компоненты в тэги писал id данных для более быстрого доступа, Разрешения выбора данных и т.д.

Как правило, если вы пишете в теги много информации - это говорит о недостатках проектирования приложения.

Роль визуальных компонентов в отображении состояния некой модели данных и передавать в эту модель (как правило посредством некой  прослойки бизнес-логики) данные от действий пользователя. 

Для упрощения реализации данных правил существует ряд общепринятых архитектурных паттернов, таких как MVVM, MVC и тд.

Поэтому хоть теги иногда и упрощают программирование, но с другой стороны они с легкостью. могут запутать и усложнить логику приложения, жестко связывая логику с визуальным представлением.

  • Like 1

Share this post


Link to post
Share on other sites

Я не то чтобы много «напихивал» туда и прям везде и сплошь и рядом, но моменты были когда тэг помогал решить некоторые нестандартные моменты или исключения из правил

Share this post


Link to post
Share on other sites

Я вообще обхожусь, живет json или датасет, и позиция в списке=позиции json или (RecNo-1) датасет

Share this post


Link to post
Share on other sites
В 19.05.2020 в 21:24, Stas сказал:

Я вообще обхожусь, живет json или датасет, и позиция в списке=позиции json или (RecNo-1) датасет

Можно чуть подробнее?

Share this post


Link to post
Share on other sites

Ну смотрите, если у вас плоский список, то каждому элементу списка будет соответствовать либо кусок json, либо запись в датасет.

Потому в OnBindItem Вы можете либо выгребать объект из json , либо позиционироваться на определенную позицию датасета.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...