|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|||||||||||
Наследник TForm14.11.2012, 22:22. Показов 6803. Ответов 15
Метки нет (Все метки)
Доброго времени суток всем. Такая проблема: создал модуль, в нем описал класс:
Вопрос: как создать приложение с такой формой? Пытался создавать дефолтное новое приложение, инклудил в него этот мой класс формы, исправлял наследование: вместо TForm наследовал от моего класса, но во время разработки и выполнения таким образом используется все равно стандартное окно C++ Builder. Вот код h-файла из программы:
0
|
|||||||||||
| 14.11.2012, 22:22 | |
|
Ответы с готовыми решениями:
15
Переcоздание TForm
копии TForm |
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 15.11.2012, 00:10 | |
|
Если это единственная форма приложения, то нужно редактировать дефолтную форму приложения.
Если это не главная форма приложения, то нужно в проекте добавлять новую форму и ее редактировать. А вообще непонятно чего вы хотите.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 15.11.2012, 18:35 [ТС] | |
|
gumi250, нужно разработать класс формы, наследник TForm, для последующего использования в различных программах; в них я буду наследовать, например, TForm1, не от TForm, а от моего класса-наследника формы. В этом моем классе-наследнике должны сохраняться и восстанавливаться координаты объекта формы. Но загвоздка в том, что создавая приложение в C++ Builder, создается дефолтная форма. наследник TForm. Ручками правлю родителя на мой класс, чтобы от него наследовалось - запущенное приложение содержит дефолтную форму, но никак не мою из моего класса.
Добавлено через 12 минут Вопрос снят. Был глупый недочет - мало было в классе написать обработчики событий нужных, нужно было еще назначить их соответствующим событиям.
0
|
|
|
|
||
| 15.11.2012, 18:35 | ||
|
А для вашего случае есть шаблоны проектов и компонентов
0
|
||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|||||||||||||||||||||
| 15.11.2012, 21:18 [ТС] | |||||||||||||||||||||
|
Вот, обрадовался, что работает, не заметил вот чего: если в классе, у меня именуемым TMainForm, наследнике моего класса, определить событий FormCreate, то оно перекрывает событие родителя, то есть моего класса. Как реализовать, чтобы выполнялся и код, написанный мною в классе моей формы, и позднее добавленный код обработчика FormCreate в непосредственно в пользовательском классе формы? Слов много, вот код:
TMyForm.h
0
|
|||||||||||||||||||||
|
|
||||||
| 15.11.2012, 23:54 | ||||||
0
|
||||||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 27.11.2012, 12:36 [ТС] | |
|
Так, вроде почти со всем разобрался, ломаю голову только вот над чем: я при закрытии формы сохраняю в файл ее координаты, размеры и состояние. Нужно сделать так, что если закрываю развернутую форму, то сохранялись ее размеры и координаты перед максимизацией и состояние wsMaximized. Соответственно, при следующем открытии окно будет развернуто, но восстанавливаться оно должно к тем самым небольшим размерам. Я завел поля для хранения размеров и координат, которые будут записаны, осталось их заполнить перед максимизацией. Переопределяю Resize, в нем проверяю состояние окна, но как я заметил при максимизации в этом методе WindowState == wsNormal и размеры формы уже развернутой, а не обычной.
Вопрос: как отловить событие максимизации?
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 27.11.2012, 13:16 | |
|
я такое делаю при закрытии приложения: if (WindowState!=wsMaximized) ... - в этом случае сохраняю габариты формы и признак max. Иначе - габариты не сохраняются (остаются прежние; можно сохранять их на событие FormResize), а записывается только признак max.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 27.11.2012, 13:36 [ТС] | |
|
nick42, как я не додумался просто не сохранять размеры развернутой формы... Работает, спасибо. Чуть-чуть не так, как я хотел, но может быть пойдет.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 02.12.2012, 01:02 [ТС] | |
|
Не подошел такой способ. Конкретнее сформулирую задачу: нужно перед максимизацией формы сохранить ее размеры. В Resize-е при развертывании размеры формы уже поменялись на максимизированные.
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 02.12.2012, 21:44 [ТС] | |
|
BRcr, стыдно спросить, как отловить сообщение? Читал что-то про макросы, про перекрытие оконной процедуры... Или как это по-человечески сделать?
0
|
|
|
|
||||||
| 03.12.2012, 15:04 | ||||||
|
Можно и без MESSAGE MAP. Вот так:
0
|
||||||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 03.12.2012, 22:22 [ТС] | |
|
BRcr, покопался, в итоге, получилось, спасибо! Только осталось вот что: при перемещении надо бы тоже сохранять положение формы, только вот при максимизации сообщение WM_MOVE тоже посылается, и сохраняются координаты развернутой формы. А проверить состояние окна, наподобие как был wParam в WM_SIZE не получается - интернеты говорят, что wParam в данном случае не используется.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 03.12.2012, 22:40 | ||||||
|
вот же любят люди себе жизнь усложнять! Только несколько строчек в обработчике FormClose - и нет проблем__
0
|
||||||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 03.12.2012, 22:43 [ТС] | |
|
nick42, стояла задача сохранить координаты перед развертыванием формы, чтобы позже, после перезапуска и нормализации оно принимало те же размеры.
Кстати, достаточно было вместо WM_MOVE обрабатывать WM_MOVING, с ним корректно работает все.
0
|
|
| 03.12.2012, 22:43 | |
|
Помогаю со студенческими работами здесь
16
Доступ к обьектам TForm Вопрос по TForm::OnKeyPress Вывод текта на TForm Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|