Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2011, 12:27
sweet_lana sweet_lana вне форума
Прохожий
 
Регистрация: 08.04.2011
Адрес: Челябинск
Сообщения: 21
Версия Delphi: delphi 7
Репутация: 10
По умолчанию подчиненные формы

Подскажите пожалуйста, можно ли вообще так сделать, чтобы все подчиненные формы при перемещеении их не выходили за границы главной формы. как это можно сделать, если вообще возможно?
главная форма будет в развернутом состоянии, и не будет изменятся, только сворачиваться. подчиненные формы различных размеров, и при перемещении могут заходить за границы главной формы.
Ответить с цитированием
  #2  
Старый 19.04.2011, 13:31
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Что подразумевается под подчиненными формами?
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 19.04.2011, 13:35
sweet_lana sweet_lana вне форума
Прохожий
 
Регистрация: 08.04.2011
Адрес: Челябинск
Сообщения: 21
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

формы, которые запускаются при нажатии на определенные пункты меню с главной формы
Ответить с цитированием
  #4  
Старый 19.04.2011, 13:39
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

приложение MDI? MDI child формы имеете ввиду?
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #5  
Старый 19.04.2011, 13:49
sweet_lana sweet_lana вне форума
Прохожий
 
Регистрация: 08.04.2011
Адрес: Челябинск
Сообщения: 21
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

нет. мне преподша посоветовала сделать обычные формы
получается у меня приложение не то?
Ответить с цитированием
  #6  
Старый 19.04.2011, 13:56
sweet_lana sweet_lana вне форума
Прохожий
 
Регистрация: 08.04.2011
Адрес: Челябинск
Сообщения: 21
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Я вообщем делала так, создала несколько форм. сделала переходы и все. при запуске делфи спрашивал, какая из форм будет главной, что то вроде этого.
Ответить с цитированием
  #7  
Старый 20.04.2011, 14:12
Max.Gr Max.Gr вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 4
Репутация: 10
По умолчанию Типа такого ?

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  If Form2.Left<Form1.Left then Form2.Left:=Form1.Left;
  If Form2.Top<Form1.Top then Form2.Top:=Form1.Top;
  if Form2.Left+Form2.Width>Form1.Left+Form1.Width then Form2.Left:=Form1.Left;
  if Form2.Left+Form2.Width>Form1.Left+Form1.Width then Form2.Width:=Form1.Width;
  if Form2.Top+Form2.Height>Form1.Top+Form1.Height then Form2.Top:=Form1.Top;
  if Form2.Top+Form2.Height>Form1.Top+Form1.Height then Form2.Height:=Form1.Height;
end;
Ответить с цитированием
  #8  
Старый 20.04.2011, 15:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а зачем таймер? есть же message WM_WINDOWPOSCHANGING; да и не красиво будет по таймеру окно назад двигать. проще сразу не дать ему выезжать за границы главной формы.
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMWINDOWPOSCHANGING(var Message: TMessage); message WM_WINDOWPOSCHANGING;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.WMWINDOWPOSCHANGING(var Message: TMessage);
begin
  if PWindowPos(Message.LParam).x<Application.MainForm.Left then
    PWindowPos(Message.LParam).x:=Application.MainForm.Left;
  if PWindowPos(Message.LParam).y<Application.MainForm.Top then
    PWindowPos(Message.LParam).y:=Application.MainForm.Top;
  if PWindowPos(Message.LParam).x+PWindowPos(Message.LParam).cx>Application.MainForm.Left+Application.MainForm.Width
    then PWindowPos(Message.LParam).x:=Application.MainForm.Left+Application.MainForm.Width-Width;
  if PWindowPos(Message.LParam).y+PWindowPos(Message.LParam).cy>Application.MainForm.Top+Application.MainForm.Height
    then PWindowPos(Message.LParam).y:=Application.MainForm.Top+Application.MainForm.Height-Height;
  Message.Result:=DefWindowProc(Handle, Message.Msg, Message.WParam, Message.LParam);
end;

end.
http://data.cod.ru/98186
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 20.04.2011, 17:17
Max.Gr Max.Gr вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 4
Репутация: 10
По умолчанию Я тоже новичек

Хороший вариант.
Ответить с цитированием
  #10  
Старый 24.04.2011, 19:27
sweet_lana sweet_lana вне форума
Прохожий
 
Регистрация: 08.04.2011
Адрес: Челябинск
Сообщения: 21
Версия Delphi: delphi 7
Репутация: 10
По умолчанию СПАСИБО

Спасибо огромное! то что надо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025