|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
Редактор свойства компонента22.11.2012, 23:14. Показов 2720. Ответов 11
Метки нет (Все метки)
Доброго времени суток. Стоит такая задача: создать компонент с двумя свойствами - множество строк и множество целых чисел. Со строками худо-бедно разобрался, создал свойство типа TStringList, редактор для него из инспектора объектов открывается нормально, а как сделать аналогичное целочисленное свойство с аналогичным редактором(многострочным полем ввода)? Пытался делать собственный редактор свойства, но максимум, что пришло в голову - тот же StringList-editor с контролем ввода, правда, без понятия, как его сделать. Подскажите про создание такого свойства, пожалуйста! И ногами сильно не бейте, компонент впервые делаю, нуб совсем.
0
|
|
| 22.11.2012, 23:14 | |
|
Ответы с готовыми решениями:
11
Свойства компонента Edit Свойства компонента StringGrid
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 22.11.2012, 23:32 | ||
|
0
|
||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 22.11.2012, 23:40 [ТС] | |
|
mss, TSetProperty я видел. Какого типа можно объявить свойство, содержащее массив чисел? Непосредственно свойство-массив публиковать же нельзя, а для непубликуемого свойства редактор бессмысленен...
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 22.11.2012, 23:56 | |
|
"Массив" и "множество" (неважно чего - целых чисел или строк) - разные по назначению, внутренней организации и использованию программные субъекты.
Что ты собственно хотел ? Чтобы элементы публикуемого тобой свойства-массива обладали главным свойством любого множества - уникальностью принадлежащих ему элементов ? Или что ?
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 23.11.2012, 00:03 [ТС] | |
|
Я сказал "множество"? Простите, не то имел в виду. Нужно просто свойство, содержащее несколько целых чисел(массив) с возможностью редактирования из-под инспектора свойств delphi. Объявил свойство типа TStringList -оно автоматически открывается стандартным редактором, нужно что-то подобное для численного свойства.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 23.11.2012, 00:47 | |
|
Ну унаследуй свой редактор TNumericListProperty от стандартного TStringListProperty и зарегистрируй его.
И в своем наследнике контролируй ввод в соответствии с требуемыми правилами строкового представления чисел.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|||||||||||
| 24.11.2012, 02:00 [ТС] | |||||||||||
|
Так, с редакторами вроде разобрался, осталась вот какая проблема: заполняю в design-time мой компонент(наследник TStringGrid), в компоненте на форме все хорошо отображается, но при запуске программы - количество строк остается правильным, но все ячейки пустые. Кода много, вот, например, перерисовка ячеек:
0
|
|||||||||||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
||||||
| 27.11.2012, 13:11 [ТС] | ||||||
|
Вот. Я понял, в чем дело, но не знаю, как это исправить.
Отладка выявила, что при запуске программы для моего помещенного на форму компонента вызывается еще раз конструктор, а в нем я создавал поля, соответственно, записанная на этапе проектирования в мои поля информация теряется. Как поправить?
- на этапе проектирования - на этапе работы
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 27.11.2012, 14:51 | |
|
if csDesigning in ComponentState then
.. этот код выполняется в дизайн-тайм else .. этот код выполняется в ран-тайм
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 27.11.2012, 15:05 [ТС] | |
|
mss, полезно, не знал такого, только вот подходит ли для моей ситуации? Для моего компонента автоматически(не моим кодом) вызывается конструктор при запуске программы, хотя он уже создан в design-time. Или где он вызывается (чтобы с помощью этого метода ограничить его вызов)?
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 27.11.2012, 15:26 | |
|
Конструктор не может быть не вызван в принципе, иначе объектне будет создан.
В ран-тайм дизайн-тайм-вызов конструктора тебя волновать вообще не должен.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 27.11.2012, 18:17 [ТС] | |
|
mss, так-то оно так, но как тогда сохранить свойства, введенные в дизайнтайме, в компонент, созданный конструктором при запуске в рантайме? Я через редактор свойства заполняю свойство Fio, оно отображается в дизайнтайме, но в конструкторе при запуске программы для этого свойства вызывается Create и оно очищается. Как перенести это свойство в компонент, созданный в рантайме?
0
|
|
| 27.11.2012, 18:17 | |
|
Помогаю со студенческими работами здесь
12
Сохранение свойства Checked компонента MainMenu Изменение свойства Caption компонента Label
Придумать два новых свойства для уже существующего компонента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|