![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ilyalyu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Главная форма определяется свойством MainForm компоненты TApplication. Обычно, это первая форма которая создается в приложении с помощью функции Application.CreateForm. Во время выполнения программы главная форма не может быть изменена.
Мне нужно сделать главную форму невидимой и заставить неглавную форму (допустим форму 2) действовать в точности как главная. В вопрос, зачем это надо, углубляться не буду. Опишу возникшие проблемы. 1. Когда я нажимаю на значок свернуть, форма 2 сворачивается, но затем снова разворачивается. При этом так происходит только если не активирована ни одна другая форма. Если же активирована еще одна форма, например, форма 3, то форма 2 сворачивается, а фокус смещается на форму 3. 2. Когда я нажимаю правой кнопкой мышки на значок формы на панели задач, не появляется меню, как для обычных приложений. Если кто пытался решить аналогичную задачу и сталкивался с такими проблемами, напишите. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
а что мешает использовать по назначению главную форму?
просто там очень много всяких штук повылазит сразу, лучше основную форму использовать именно как основную, а вот всё остальное - эмулировать. можно написать так, например:
на таскбаре будет висеть значок основной формы (т.е. Project1), и он будет нормально отрабатывать меню. но вот сворачиваться форма будет не в в таскбар, а в угол экрана, и при закрытии формы нужно дописать закрытие основного (невидимого) окна, иначе форма не закроется. я пока не совсем понял, что требуется получить в итоге. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| ilyalyu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Ок. Поясню. Я работаю над 2 программами - чатом и мессенджером (на подобии аськи). Нетрудно догадаться, что они на 90% перекрываются. Поэтому я их объеденил в одну программу, но в зависимости от того, что я хочу получить, главным окном должен быть либо окно чата либо либо окно со списком контактов. Проблема в том, что есть несколько компонент, которые должны находиться именно на главной форме, и мне их приходится постоянно переносить с одной формы на другую. Поэтому я решил создать невидимую главную форму и поместить туда все такие компоненты. Как говорится, лучше иметь один раз большой геморой, чем постоянно сталкиваться с одним и тем же маленьким геморойчиком.
Проблем я не добивался - сами возникли |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
ilyalyu, почему бы не вынести все общие компоненты в модуль данных?
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| ilyalyu |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
2 х77:
Это я уже сделал:
Окно приложения с панели задач убрал:
Окно формы на панель задач поместил:
Остались тольк две проблемы, которые я описал выше. Все остальное я уже решил. Добавлено @ 15:41
А как это делается? Подскажите. Сейчас сам попробую поискать.. |
||||||||
|
|||||||||
| Sunvas |
|
||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
А какая для тебя разница между главно и неглавной формой?? Главная форма - та, которая создается первой. Отлавливай сообщение минимизации и делай так: application.minimize;
А что ты вкладываешь в понятие "меню для обычных приложений"? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
| ilyalyu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
2 x77
Модуль данных нашел, но похоже мне уже будет проще доделать все как есть. 2 Sunvas Спасибо, попробую использовать application.minimize Я имею ввиду то меню, которое в которое можно забраться, когда приложение свернуто. Такое меню только одно |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
боюсь, я всё равно чего-то не понимаю
две формы, одна основная. на ней все компоненты. вместо Close говорим ей Hide, и все компоненты будут всегда доступны, независимо от того, на экране форма или нет. мне кажется, что все эти пляски с бубном вокруг MainForm - просто излишни. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Lence |
|
||||
|
Чухарадземадзупэ ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 9.5.2006 Где: Ташкент Репутация: 3 Всего: 3 |
попробуй так сделать
для первой формы AlphaBlend надо включить, хочешь программно хочешь инспекторе
для второй формы
Это сообщение отредактировал(а) Lence - 13.12.2006, 16:41 --------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой .... |
||||
|
|||||
| ilyalyu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
2 x77
Все-таки решил перенести все в DataModule, провозился час, но теперь все заработало как надо. СПАСИБО. К сожалению, при самообучении часто возникают пробелы в элементарных вопросах |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
ilyalyu, не за что ;)
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Чистой воды бред! Делать форму прозрачно только для того, чтобы ее не было видно это чревато тем, что форма все еще может быть активна но невидима! К тому же это не будет работать на Вин32. Если хочется сделать главную форму невидимой при старте приложения то лучше чем в Oncreate прописать application.showmainform:=false; не найти!
Хорошо, что их есть кому задавать! -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
ещё можно попробовать перепрограммировать лучевую пушку монитора так, чтобы её лучи не высвечивали пиксели, принадлежащие "спрятанной" форме. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
используем примерно так:
|
||||
|
|||||
| Student00 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 22.11.2007 Где: Барнаул Репутация: нет Всего: нет |
Ситуация такая. Есть готовая программа, написанная на delphi 7.
Возникла необходимость сделать так, чтобы при запуске первое что запускалось - это окошко для ввода логина и пароля. Т.е. необходимо теперь чтобы главная форма - form1 стала второй (все остальные - подчиненный соотвественно 3, 4...), а новая созданная форма стала первой и именно она была стартовой. Переделать всю программу если чесно не очень охота... Ребят, подскажите пожалуйста как сделать чтобы любая не главная форма (form2, 3, 4...) - стала главной и стартовой, а все остальные (и в частности form1) запускались в последствии именно с неё? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |