|
|
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubu, авторНа Form1 есть датасет(Query, clientdataset) и Form3 использует её для параметра своего запроса или для присвоения значения переменным или свойствам свойх компонентов. Все датасеты и коннекты лучше вынести на отдельный датамодуль. Который создавать по мере необхиодимости. Либо, проще, на старте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 10:08 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо. Вы мне очень помогли. На счеть модульности: общие датасети все вынесены в отдельный датамодуль, просто датасет Form1 никем не используется кроме Form2. krapotkin Отгадайте что будет, если ваша form1 уже будет уничтожена, а вторая полезет в query? Никак.Form2 модальная, наверх Form1. Вопрос был о том как написать условие - форма вызывается из другой формы или из главного меню. Или, например, из нескольких форм вызываю общую процедуру и проверяю условия так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. но, каr видите здесь приведения выполняются к типу TForm, а вот при TMenuItem не могу код правильно написать. Код: pascal 1. ругается Undeclared identifier TMenuItem. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 15:23 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
Семён Семёныч! Ну очевидно же что в Uses нету модуля, в котором описаны TMenuItem! Либо вспоминать в каком и добавлять руками, либо вариант для ленивых - кидаем с палитры на форму (на модуле которой ругается) компонент TMainMenu, нажимаем компилировать, и оно само добавит модуль. После этого можно удалять TMainMenu. У меня, если что, добавляет "Vcl.Menus". Почему "sender" и "as"? Проверка говорю через "is", а передавать через "Owner". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 00:16 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
LoneFast , в Uses вместо Vcl.Menus был включен Menus. Не compile не build ни помог. Поменял на Vcl.Menus и заработал. :) Кстати, пока форму создавал где владелец Application (Form1 := TForm1.Create(Application)) проверка с помощью owner не работал поскольку всегда owner-ом был appllication. Как только поменял на Form1 := TForm1.Create(self) уже заработал. :) Спасибо всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 02:36 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubuПоменял на Vcl.Menus и заработал или можно было в настрйоках проекта префиксы стандартные настроить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 14:55 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubu, Надёжнее всего создавать формы так: Код: pascal 1. Другие варианты могут привести к разным спецэффектам рано или поздно. Вместо проверки на Owner что-то другое придумать. Код: pascal 1. Лучше проверять на конкретный класс формы: Sender Is TForm1, либо на экземпляр формы (если она одна, случаи всякие бывают): Sender = Form1. Правда, придётся тянуть в uses все модули. Но если они и так там уже, то разницы нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:22 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubu, автор можно было в настрйоках проекта префиксы стандартные настроить настраивать тут, если что: Delphi compiler > Unit scope names. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:26 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
makhaonbastibubu, Надёжнее всего создавать формы так: Код: pascal 1. Другие варианты могут привести к разным спецэффектам рано или поздно. makhaon , я всегда и так создаю формы и когда не нужны уничтожаю (action:=caFree). Просто сейчас экспериментирую, изучаю параметры sender, owner и на этом этапе, если владелец формы Application тогда условия проверки(if owner.name is 'Fmain'... ) не сработает поскольку всегда owner-ом будет Application откуда бы форму не вызывал. Поэтому временно поменял application на self. makhaon Вместо проверки на Owner что-то другое придумать. Код: pascal 1. Лучше проверять на конкретный класс формы: Sender Is TForm1, либо на экземпляр формы (если она одна, случаи всякие бывают): Sender = Form1. Да, вы правы. Тем более имена форм иногда меняю. P.S. Всё-таки никак не смог написать условие "if форму вызывает MainMenu главной формы тогда...". Всегда owner-ом является главная форма а не MenuItem. Правильно советовали что это путь ведущий в некуда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 18:03 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubuПравильно советовали что это путь ведущий в некуда... плакалъ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 18:18 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubuформу вызывает MainMenu начнём с того, что эта фраза дважды бессмыслена ни форма ни меню не являются функциями, поэтому не возможно их вызывать и поэтому они тоже никого не могут вызывать программирование начинается с "объясни тупому комьпютеру, на понимаемом им дебильском язык,Е что ты от него всё-таки хочешь" а для этого сначала это надо объяснить себе, разжевать соответственно, пока вы проихносите бесмысленные фразы вроде процитированных - то и программировать вы не можете пока обдумывая её и спрашивая себя что же реальное вы могли бы иметь в виду, вы её не замените на другую фразу, имеющую какой-то практический смысл https://habrahabr.ru/company/alconost/blog/344652/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 18:34 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
bastibubu P.S. Всё-таки никак не смог написать условие "if форму вызывает MainMenu главной формы тогда...". Всегда owner-ом является главная форма а не MenuItem. Правильно советовали что это путь ведущий в некуда... имхо, у тебя два выхода: либо используешь какое-нибудь стандартное свойство формы (owner, tag), либо заводишь дополнительное поле типа FCaller: TControl, создаешь шаблон и наследуешься от этой формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 08:37 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
Док, что за "шаблон", о каком "наследовании" баишь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 13:05 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
чччДчто за "шаблон", о каком "наследовании" баишь? прикалываешься? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 14:35 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
на коленке Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. Передаваемая строка может быть не уникальна, тут уже думать надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 16:00 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
Ariochначнём с того, что эта фраза дважды бессмыслена Шикарно! Возьму на вооружение. Тебе, наверное, часто приходится 'внушать' заказчику что он идиот не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 16:32 |
|
||
|
Как узнать форма вызвана из другой формы или из MainMenu?
|
|||
|---|---|---|---|
|
#18+
kep-koAriochначнём с того, что эта фраза дважды бессмыслена Шикарно! Возьму на вооружение. Тебе, наверное, часто приходится 'внушать' заказчику что он идиот не прав? Ну конечно же, ТС - "заказчик". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2018, 16:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39611778&tid=2041167]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 351ms |

| 0 / 0 |
