Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 18:49   #1
psyco
 
Регистрация: 13.10.2009
Сообщений: 4
По умолчанию Привязка формы к форме

Здравствуйте! У меня появилась необходимость привязать форму(неосновную) к другой форме(основной) (среда Delphi 7). Например когда происходит событие на основной форме(нажатие кнопки или нажатие какой-нибудь компоненты) - неосновная форма должна выдвигаться с правой части основной формы, где будут находиться другие компоненты, а когда событие происходит еще раз - прятаться за ней. Вот примерная схема:

Эту часть задачи я осуществил. Теперь мне нужно, чтобы при движении пользователем главной форме вместе с ней как бы передвигалась и дополнительная. Например пользователь нажал кнопку, или сделал другое событие, дополнительная форма выдвинулась, пользователь начал двигать главной формой, и по идее вместе с ней должна двигаться и дополнительная. Пробовал программировать события OnDragDrop и OnDragOver, но ничего не получается. Помогите, пожалуйста, советом, идеей, как это лучше сделать. Заранее благодарен.
psyco вне форума Ответить с цитированием
Старый 03.10.2010, 19:38   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Используйте поиск по форуму "Липкие окна" - примеров куча.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 03.10.2010, 23:29   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Пробовал программировать события OnDragDrop и OnDragOver
Они тут ни при чём...
Нужно ловить когда главному окну придёт сообщение о том что форму перетаскивают (WM_MOVE) и корректировать координаты второй...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 04.10.2010, 13:16   #4
DelphiGman
Новичок
Джуниор
 
Регистрация: 04.10.2010
Сообщений: 2
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Posc(var Msg: TWMWINDOWPOSCHANGING);
  message WM_WINDOWPOSCHANGING;
  end;

var
  Form1: TForm1; X,Y:integer;

implementation

uses Unit2;

{$R *.dfm}
procedure Tform1.Posc(var Msg: TWMWINDOWPOSCHANGING);
begin  if timer1.enabled=false then 
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

form2.left:=form1.Left+20;
form2.Top:=form1.Top;
timer1.Enabled:=false;
end;

end.
В таймере можно нарисовать, например, плавный подлёт формы. Задержка на таймере - небольшая.
DelphiGman вне форума Ответить с цитированием
Старый 04.10.2010, 23:54   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Эм... Зачем таймер-то? о__О
И думаю WM_MOVE подошел бы гораздо лучше...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
привязка ссылки к форме типа submit в html RobinVit Помощь студентам 3 12.02.2013 22:39
Привязка формы к полю TimRus Microsoft Office Access 10 19.05.2010 07:15
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17
Придание формы форме ))) Kukkk Общие вопросы Delphi 5 14.10.2007 15:40