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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.10.2007, 10:40
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
По умолчанию Изменение размера формы

Я поместил Panel на край формы (panel1.align:=alleft). Что надо написать чтобы когда я нажимаю на panel и двигаю мышью изменялся размер формы?
Ответить с цитированием
  #2  
Старый 06.10.2007, 20:11
Аватар для Dimanus
Dimanus Dimanus вне форума
Прохожий
 
Регистрация: 20.11.2006
Адрес: Россия г.Братск
Сообщения: 33
Репутация: 10
По умолчанию

Можно написать просто, мышь на панели:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Panel1.Width := 300; или Height - если не (panel1.align:=alleft)
end;
При нажатии на панель:
procedure TForm1.Panel1Click(Sender: TObject);
begin
Panel1.Width := 255;
end;
Ну и соответственно когда мышь на форме, и т.д.
Просто вопрос, двигаю мышью? по каким событиям должно отлавливаться?
Или ты хочешь медленно передвигая мышь по чему либо изменять его
размер?
Да, и если будет MouseMove и Click то последним сработает MouseMove можно даже не заметить изменения.

Последний раз редактировалось Dimanus, 06.10.2007 в 20:17.
Ответить с цитированием
  #3  
Старый 07.10.2007, 01:25
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Добавь код:
Код:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
    begin
    ReleaseCapture;
    SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTLEFT, 0);
    SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTTOP, 0);
    end;
end;
Когда кликаешь левой кнопкой мыши на панели и не отпуская ее водишь крысой по экрану - меняется ширина формы, когда отпускаешь пр. кнопку и водишь крысой - меняется высота формы, пока ты снова не нажмешь кн. мыши.
Ответить с цитированием
  #4  
Старый 07.10.2007, 10:49
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Можно сделать еще красивие:
Код:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
    begin
    ReleaseCapture;
    SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTBOTTOMRIGHT, 0);
    //или:
    //SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTTOPLEFT, 0);
    end;
end;
При таком раскладе меняется и ширина и высота одновременно.
Ответить с цитированием
  #5  
Старый 07.10.2007, 14:11
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
По умолчанию

Надо так как в окнах винды. Внизу и по краям есть полоски. Если на одну из них навести мышь - появятся стролочки. Если подвигать нажимая на стрелочки - размер формы будет меняться. Мне надо также.
Ответить с цитированием
  #6  
Старый 07.10.2007, 17:05
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Вот код, показывает стрелки только с левой строны и сверху, справа и снизу дамаю сам допишешь:
Код:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if X=Button1.Height div 10 div Button1.Height then
Button1.Cursor:=crSizeWE
else
Button1.Cursor:=crDefault;
if Y=Button1.Width div 10 div Button1.Width then
Button1.Cursor:=crSizeNS;
if X=Button1.Height div 10 div Button1.Height then
Button1.Cursor:=crSizeWE
else
Button1.Cursor:=crDefault;
end;

end.
ЗЫ. Показ стрелочек очень чуствителен на движение мыши, так что целься лучше
__________________

Ответить с цитированием
  #7  
Старый 08.10.2007, 01:14
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

вот попробуй мой пример проги (с коментариями)
Вложения
Тип файла: zip Form_Resize.zip (7.9 Кбайт, 10 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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