|
|
|
Место рождения у 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 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39519929&tid=2041836]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 474ms |

| 0 / 0 |
