Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перемещение компонента как в Delphi [D6, WinXP]


Sliski Slimak ©   (2004-07-12 00:20:00) 

Господа кодеры, подскажите, как правильней организовать перемещение и рисайзинг компонента, как в Delphi... Сделал с помощью 9 Shape'ов- аж самому страшно....


NAlexey   (2004-07-16 10:01:00) [1]

Sun bittern ©   (15.07.04 19:43) [7]
Посмотри как сделан дизайнер в DreamControls и поймешь о чем я:)


Sun bittern   (2004-07-15 19:43:00) [2]

NAlexey ©   (13.07.04 09:50) [3]

Какашка не какашка, если руки есть подправить мона ;)


Sandman25   (2004-07-15 12:42:00) [3]

[5] SelloutS   (15.07.04 04:29)

Вот за такие if b = 1 убивать мало. Используйте либо Boolean, либо перечислимый тип.


SelloutS   (2004-07-15 04:29:00) [4]


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

var
 x1, y1: Integer;
 b: Byte;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 b := 1;
 x1 := X;
 y1 := Y;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 b := 0;
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if b = 1 then begin
   Button1.Left := Button1.Left + X - x1;
   Button1.Top := Button1.Top + Y - y1;
 end;
end;

end.


Sliski Slimak   (2004-07-14 22:43:00) [5]

Я  на сайте http://mysoft.webs.com.ua/excomponent.htmlещё нашёл очень интересный компонент по сабжу.. тестирую...

Extension Library -целая библиотека полезных компонент, в частности, компонент позволяет добавить в приложение возможности визуального дизайнера. По своим характеристикам он максимально приближен к визульному дизайнеру Delphi. Размер 184 kb. Автор: Balabuyev Yevgeny e-mail: stalcer@rambler.ru


NAlexey   (2004-07-13 09:50:00) [6]

>Sun bittern ©   (12.07.04 10:24) [2]
Какашка редкостная этот TStretchHandle


Sun bittern   (2004-07-12 10:24:00) [7]

Ищи в сети StretchHandle - TStretchHandle


jack128   (2004-07-12 01:20:00) [8]

MouseDown - выставляешь флаг перемещения или флаг ресайзинга (в зависимости от того куда кликнули)
MouseMove - перемещаешь контрол или меняешь его размеры
MouseDown - сбрасываешь флаг перемещения и ресайзинга


Наверх

Титульная страница Поиск, карта сайта Написать письмо