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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 17:22   #1
ramzes777
Пользователь
 
Регистрация: 15.09.2011
Сообщений: 92
По умолчанию Работа с фигурами

Как можно сделать чтобы можно было перемещать фигуры по форме и изменять с помощью мыши размер этой фигуры (как до запуска), чтобы она не выделялась в отдельное окно, а была всегда на форме?

Последний раз редактировалось ramzes777; 28.10.2011 в 17:28.
ramzes777 вне форума Ответить с цитированием
Старый 28.10.2011, 17:44   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Перемещение.
Практически для любого компонента на форме (пример для Button2):

Код:
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  Button2.perform(WM_SysCommand,SC_DragMove,0);
end;
З.Ы. На примере ListBox1 - и перемещение, и изменение размеров:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(ListBox1.Handle, GWL_STYLE, GetWindowLong(ListBox1.Handle, GWL_STYLE) or WS_THICKFRAME);
SetWindowLong(ListBox1.Handle, GWL_EXSTYLE, GetWindowLong(ListBox1.Handle, GWL_EXSTYLE) and not WS_EX_CLIENTEDGE);
end;

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  ListBox1.perform(WM_SysCommand,SC_DragMove,0);
end;

Последний раз редактировалось mihali4; 28.10.2011 в 18:01.
mihali4 вне форума Ответить с цитированием
Старый 28.10.2011, 18:14   #3
ramzes777
Пользователь
 
Регистрация: 15.09.2011
Сообщений: 92
По умолчанию

18:14
Спасибо! Не думал что так мало кода будет

18:22
С Shape:

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin

SetWindowLong(Shape1.Handle, GWL_STYLE, GetWindowLong(Shape1.Handle, GWL_STYLE) or WS_THICKFRAME);
SetWindowLong(Shape1.Handle, GWL_EXSTYLE, GetWindowLong(Shape1.Handle, GWL_EXSTYLE) and not WS_EX_CLIENTEDGE);

end;

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DragMove = $F012;
begin
  ReleaseCapture;
  Shape1.perform(WM_SysCommand,SC_DragMove,0);
end;
Говорит что Handle неизвестный идентификатор, если убрать все из TForm1.FormCreate, то не получается по форме таскать shape.

Как быть?

20:47
Уже не нужно, спасибо!

Рад, что смог помочь.
Тем не менее !
Красные жирные циферки видны ?
Это время, когда вы отправляли свои сообщения друг за другом, подряд.
Читаем правила раздела.
По правилам это приравнивается к флуду.

Последний раз редактировалось mihali4; 28.10.2011 в 21:04.
ramzes777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестирование памяти с фигурами Acab Помощь студентам 3 05.06.2011 15:28
VBA: работа с фигурами Kuraj Microsoft Office Excel 5 04.01.2010 18:33
Работа с графическими фигурами Fanat1k Помощь студентам 1 03.05.2007 07:59
Воспроизведение мелодии с геометрическими фигурами Let Помощь студентам 2 27.12.2006 08:03