|
|
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Есть много форм наследуемых от общего предка. Код: pascal 1. 2. 3. 4. 5. Как определить что SpeedButton1 которая находится на форме определена в родителе формы, а не в текущем классе? Как узнать в каком из родителей кнопка появилась? Пока вижу 2 варианта: 1. Создавать экземпляры всех родителей и затем FindComponent. Это не самый хороший способ, т.к. в OnCreate может много чего выполняться 2. Прочитать dfm из ресурсов, и затем искать текст в родителях "object SpeedButton1: TSpeedButton" Идея парсить текст тоже не слишком хороша. У некоторых форм своей dfm может и не быть Есть ли способы проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 13:47:06 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений> Как определить что SpeedButton1 которая находится на Шавлюк Евгений> форме определена в родителе формы, а не в текущем классе? Шавлюк Евгений> Как узнать в каком из родителей кнопка появилась? Ну щас опять спросят зачем. :) P.S. Я бы посмотрел в сторону RTTI, если версия не старая. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:02:45 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений, ну тя и плющит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:04:54 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
В имени SpeedButton указывай родителя Типа: SpeedButton1_TForm1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:11:15 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамP.S. Я бы посмотрел в сторону RTTI, если версия не старая. Версия старая, D5. Туда и смотрю. Но может кто раньше сможет мне помочь. чччД, Не то чтобы сильно плющит. У меня много есть разных проектов. Есть набор базовых классов, от них уже все дальше наследуется. Некоторые вещи удобно решать в "общем виде", считая что всю иерархию я не знаю. В обычном проекте у меня 300-400 различных форм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:14:13 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
В конструкторах форм можно инкрементировать тэги вложенных компонентов. Чем больше наинкрементировали - тем древнее род. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:14:49 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений> Версия старая, D5. Туда и смотрю. В D5 не получится, разве что хаками какими-нибудь. Лучше таки озвучь саму задачу, может, опять через JCL какое-нибудь решение подскажут. У тебя нигде в формах/класса нет своих "метаданных"? Там мог бы и сабж хранить и любые капризы на будущее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:22:35 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
с каждым новым постом автора всё больше и больше склоняюсь к мнению, что не только стоматология может быть трансректальной ... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:26:55 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Кнопка может создаваться и динамически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:32:12 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Ну цель-то у меня все та же - локализация. Не хочу делать переводы каждой из 300 форм, т.к. тексты на 95% наследуются из родителей. Конечный результат который хочу видеть табличку вида 1. Форма 2. Компонент 3. Главный родитель Дальше пойдут интересующие меня свойства. Пока я склоняюсь к парсингу всех дочерних форм. В этом случае я смогу отслеживать переопределялись ли интересующие меня свойства в наследниках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:37:11 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Какой лютый п....ц, даже комментировать никто не берется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:43:38 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений> Ну цель-то у меня все та же - локализация. Я даже боюсь спрашивать, какое дело локализации до того, где была объявлена кнопка - в Form1 или в Form1211... > Конечный результат который хочу видеть табличку вида А что потом будешь с этой табличкой делать? Техпису отдашь или что? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:48:27 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамкакое дело локализации до того, где была объявлена кнопка - в Form1 или в Form1211 Затем, я буду переводить ее один раз, в Form1, а не в остальных N-формах, где есть эта кнопка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 14:57:55 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк ЕвгенийГаджимурадов Рустамкакое дело локализации до того, где была объявлена кнопка - в Form1 или в Form1211 Затем, я буду переводить ее один раз, в Form1, а не в остальных N-формах, где есть эта кнопка. ...вопросы языковой локализации важны, несомненно. Но строить всю структуру проекта вокруг них? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:01:28 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
чччДНо строить всю структуру проекта вокруг них? У меня вся базовая функциональность вынесена в родителей, и в наследниках только необходимый минимум. А где ты увидел что структура проекта вокруг локализации? Сейчас я ищу наиболее легкий способ переводить минимум текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:14:33 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
А чем не устраивают готовые решения по локализации? Например, GNU Gettext. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:15:20 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Когда я работал в маленькой психиатрической больнице занимался наколенной локализацией, я написал небольшую программу, которая смотрит свойства всех компонентов на всех формах (.dfm) и если они подлежат локализации, генерирует нужный код в соответствующем .pas-файле. У всех локализуемых классов был метод LocalizeInterface, соответственно, тело этого метода и генерировалось. Как-то так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:24:08 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
чччДschi, все давно украдено. Видишь ли, в чем дело, поругавшись на встроенный в D2006 ITE, я понял на тот момент, что проще написать простую программку из ста строк, чем тыкатся в готовые продукты по цене до 1840 евров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:45:33 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
schiчччДschi, все давно украдено. Видишь ли, в чем дело, поругавшись на встроенный в D2006 ITE, я понял на тот момент, что проще написать простую программку из ста строк, чем тыкатся в готовые продукты по цене до 1840 евров. Там же и бесплатных полно. Главный принцип - при проектировании приложения уже знать, что будешь использовать конкретно вот такой локализатор, и научиться работать с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:48:41 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Шавлюк ЕвгенийЕсть ли способы проще? Есть - не заморачиваться этим. 1. Ты не сам будешь переводить (я надеюсь). Поэтому пофиг сколько раз кнопки будут повторятся. На крайняк перевод можно автоматизировать в тулзе для перевода. 2. Контекст у наследуемых кнопок может меняться и на разных языках по разному переводиться. Поэтому всегда есть оставлять возможность переводить по разному. 3. Я бы послушал других и не изобретал бы великов, благо есть много проверенных инструментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 15:58:01 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
чччДschiпропущено... Видишь ли, в чем дело, поругавшись на встроенный в D2006 ITE, я понял на тот момент, что проще написать простую программку из ста строк, чем тыкатся в готовые продукты по цене до 1840 евров. Там же и бесплатных полно. Главный принцип - при проектировании приложения уже знать, что будешь использовать конкретно вот такой локализатор, и научиться работать с ним. Ты считаешь, что платные там для понтов перечислены или как ? У меня была несколько иная ситуация, приложение уже было спроектировано и возникла нужда в его локализации. Поэтому взвесив все за и против, было решено, что проще написать заплатки к готовому коду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 17:09:12 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
А чем выход наверх через "parent" не прет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 17:09:32 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
12.09.2017 17:09, rgreat пишет: > А чем выход наверх через "parent" не прет? ты сейчас об чём? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 17:16:59 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий12.09.2017 17:09, rgreat пишет: > А чем выход наверх через "parent" не прет? ты сейчас об чём? Слово подходящее. inheritance-child-parent. А так - да, ни о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 17:21:44 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
rgreat> А чем выход наверх через "parent" не прет? Выйти чтобы что? Два варианта выхода ТС сам выше и описал - создавать и чекать и dfm чекать. P.S. Есть ещё, наверное, вариант через OTA. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 17:33:40 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Чёт мне кажется ТС делает редактор компонентов, и хочет их знать - где его компоненты, и где динамически созданные. Тогда следует хранить динамически созданные объекты в списке (не важно в каком), главное что бы была база. И тогда проблем с поисками жабы в поле не будет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 21:43:45 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Кстати, насчёт локализации. Всегда ведь все делали, что - то типа {ИмяСвойства - Содержащее текущую локализацию.} Потом делался foreach по всем компонента, и текст с компонента сверялся с базой ? ... Всё это делается буквально в пару строк кода,а базу можно сделать через XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2017, 21:49:07 |
|
||
|
Место рождения у SpeedButton1
|
|||
|---|---|---|---|
|
#18+
Ну цель-то у меня все та же - локализация. И только ради этого такие извращения ?????? Этому посвящено несколько топиков. Там есть реально работающие советы. Локализация проекта(разноязычные надписи на контролах) делается за один день одной несложной процедурой (Карл !). Еще пару дней - ресурсы и всякие месаджи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 09:31:45 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041836]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
201ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 529ms |

| 0 / 0 |
