Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 137
1

Чтобы дочерняя форма не выходила за пределы главной

23.02.2013, 19:32. Просмотров 1375. Ответов 15
Метки нет (Все метки)

Доброго времени суток. Ребята сделал приложение в с++ builder, и хотел бы чтобы дочерняя форма не выходила за пределы главной :-) Как это сделать? Помогите, плиззз.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2013, 19:32
Ответы с готовыми решениями:

Как сделать, чтобы дочерняя форма не закрывалась при выгрузке главной
Итак, за дедовский метод решения задачи прошу не пинать. Есть форма Form1, у которой настройки...

Какой код писать чтобы мышка не выходила за пределы формы? в vb 2010
Очень надо. Ваш раздел здесь - https://www.cyberforum.ru/vb-net/ Тема перенесена.

Дочерняя форма не полностью помещается в клиентскую часть главной формы
Не могу установыть высоту дочерней формы Form1 чтобы она полностью поместилась на экран. В...

Нужно чтобы дочерняя форма могла открываться только 1 раз
есть пункт меню которое открывает дочернюю форму. Надо сделать чтобы он был не активным если...

15
Супер-модератор
8730 / 2424 / 138
Регистрация: 07.03.2007
Сообщений: 11,630
23.02.2013, 19:44 2
Это многооконное приложение - MDI
0
Эксперт С++
8330 / 6082 / 605
Регистрация: 10.12.2010
Сообщений: 28,266
Записей в блоге: 29
23.02.2013, 19:51 3
Да вообще не рекомендуют MDI использовать...
Цитата Сообщение от Didilom Посмотреть сообщение
Как это сделать? Помогите, плиззз !!
Проверкой, установкой Left,Top дочерней формы
0
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.02.2013, 21:51 4
Почему не рекомендуют?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30325 / 19818 / 7749
Регистрация: 22.10.2011
Сообщений: 34,565
Записей в блоге: 6
23.02.2013, 21:59 5
Цитата Сообщение от BRcr Посмотреть сообщение
Почему не рекомендуют?
Потому что начинающим пользователям трудно разобраться с использованием MDI-приложений:
Many new and intermediate users find it difficult to learn to use MDI applications.
(отсюда)
0
Эксперт С++
8330 / 6082 / 605
Регистрация: 10.12.2010
Сообщений: 28,266
Записей в блоге: 29
23.02.2013, 22:02 6
Архангельский писал что типа M$-не рекомендуют ибо много написано плохих программ с использованием MDI.

Мое мнение просто нет нужны в MDI.
0
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
24.02.2013, 12:30 7
Зачастую вкладки удобней. Однако, и MDI пригодится, когда удобен обзор нескольких независимых источников данных одновременно. Можно, конечно, организовать это, как в BCB6, но есть некоторые существенные отличия интерфейсов, так что в итоге это дело предпочтений.

Так что нет смысла просто рекомендовать или нет какой-либо интерфейс. Все служит своей цели.
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 137
24.02.2013, 16:47  [ТС] 8
Да это правда, я хотел сделать многооконое приложение Mdi и то что я хотел, я раньше делал. Мне преподователь мой по программированию давал код, но сейчас его нет и мне нужен этот код. код вроде бы состоял и 4 строк. Если кто знает этот код скиньте пожалуйста :-) буду ждать

Добавлено через 38 секунд
и программу я пишу на С++ Builder 6 :-)
0
LK
Заблокирован
24.02.2013, 19:16 9
Цитата Сообщение от Didilom Посмотреть сообщение
буду ждать
а что мешает взять хорошую книгу и самому найти решение? Аль грамоте не обучен?
0
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
24.02.2013, 21:21 10
Цитата Сообщение от Didilom Посмотреть сообщение
код вроде бы состоял и 4 строк
Тут даже и книг никаких не надо. Да даже и грамота не нужна. Тупым подбором символов можно воссоздать
0
Супер-модератор
8730 / 2424 / 138
Регистрация: 07.03.2007
Сообщений: 11,630
24.02.2013, 22:58 11
Avazart, вам кажется авторитетным мнение Архангельского? мне, лично, как-то оно не авторитетно: особенно после того, что тут исполняют читавшие его труды - это пугает
Цитата Сообщение от Avazart Посмотреть сообщение
ибо много написано плохих программ с использованием MDI.
сколько шлака написано на всех языках, но они в своем большинстве "не канули в лету", т.е. не все придерживаются такого критерия оценки...
0
Эксперт С++
8330 / 6082 / 605
Регистрация: 10.12.2010
Сообщений: 28,266
Записей в блоге: 29
24.02.2013, 23:02 12
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Avazart, вам кажется авторитетным мнение Архангельского? мне, лично, как-то оно не авторитетно: особенно после того, что тут исполняют читавшие его труды - это пугает
Я умею отличать мне Архангельского, от мнения тех кто его читал, и от мнения M$ ...
Так что не вижу причин сомневаться в его авторитетности....

Добавлено через 20 секунд
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
сколько шлака написано на всех языках, но они в своем большинстве "не канули в лету", т.е. не все придерживаются такого критерия оценки...
А люди до сих пор верят в Бога находящегося на небесах, и что с того, при чем тут это?
0
LK
24.02.2013, 23:07
  #13
 Комментарий модератора 
В случае рецидива оффтопа закрою тему. Всех касается.
0
Супер-модератор
8730 / 2424 / 138
Регистрация: 07.03.2007
Сообщений: 11,630
25.02.2013, 01:30 14
Лучший ответ Сообщение было отмечено как решение

Решение

h:
C++
1
2
protected: // User declarations
         virtual void __fastcall WndProc(TMessage &Message);
cpp:
C++
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
void __fastcall TSprArticleForm::WndProc(TMessage &Message)
{
  bool isIgnore = false;
  if(Message.Msg == WM_MOVE && Application->MainForm != 0)
  {
    POINTS points = MAKEPOINTS(Message.LParam);
    isIgnore = points.x < Application->MainForm->Left ||
               points.x > Application->MainForm->Left + Application->MainForm->Width - Width
               points.y < Application->MainForm->Top ||
               points.y > Application->MainForm->Top + Application->MainForm->Height - Height;
               
    if(points.x < Application->MainForm->Left){
      this->Left = Application->MainForm->Left;
    }
    else if(points.x > Application->MainForm->Left + Application->MainForm->Width - Width)
    {
      this->Left = Application->MainForm->Left + Application->MainForm->Width - Width;
    }
 
    if(points.y < Application->MainForm->Top)
    {
      this->Top = Application->MainForm->Top;
    }
    if(points.y > Application->MainForm->Top + Application->MainForm->Height - Height)
    {
      this->Top = Application->MainForm->Top + Application->MainForm->Height - Height;
    }
  }
  if(!isIgnore) TForm::WndProc(Message);
}
1
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
25.02.2013, 14:55 15
А что мешает сделать форму в форме?
C++
1
2
3
4
5
6
7
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Form2->ParentWindow = Form1->Handle;
    Form2->Show();
}
//---------------------------------------------------------------------------
2
834 / 729 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
25.02.2013, 17:54 16
Я так понял, ему как во вкладке View программка Image-редактор нужно сделать? Там окно, которое для рисования ходит только внутри главной формы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2013, 17:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как отрыть одну форму внутри другой, чтоб дочерняя не выходила за рамки родительской?
Auth auth = new Auth(); auth.Parent = this; auth.ShowDialog(); Пробую...

Нужно, чтобы дочерняя форма была жестко привязвна к правой стороне MDI-матери
Мне нужно, чтобы дочерняя форма была жестко привязвна к правой стороне MDI-матери. При этом по...

Как сделать чтобы дочерняя форма открывалась при нажатии на кнопку поверх всех компонентов и по центру?
У меня две формы Form1, Form2. Мну нужно, чтобы при нажатии на кнопку, открывалась вторая форма...

Мышь не выходила за пределы области
Привет всем, у меня есть вопрос, как не выходить за пределы области, к примеру у нас есть картинка...

Дочерняя форма
Помогите разобраться! Есть база на Оракле. Пишу формочки на Си... Не могу вызвать из главной...

Дочерняя форма
Помогите создать дочернюю форму, и чтобы она открывалась по нажатию кнопки


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.