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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 12:43   #11
Nub83
 
Регистрация: 08.10.2009
Сообщений: 6
По умолчанию

C линией без формы я разобрался. Возможно нужно переформулировать задачу. Нужна линия и допустим два круглишка на концах. При Зажатии и удержании за один из круглешков его можно было бы перемещать в любом направлении при этом круг на другом конеце должен стоять на месте а линия должна удлинятся сокращаться и быть привязанной к первому.
Nub83 вне форума Ответить с цитированием
Старый 09.10.2009, 20:01   #12
Nub83
 
Регистрация: 08.10.2009
Сообщений: 6
По умолчанию

Если нажиманшь и удерживаешь ctrl мышкой на battons1 его можно перетаскивать. Вроде прописал и для battons 2. Первая кнопка работает как надо вторая не реагирует. Что неправильно?
Вот код


Цитата:
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1MouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);


procedure Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button2MouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);

private
{ Private declarations }
public
{ Public declarations }

MouseDownSpot : TPoint;
Capturing : bool;

end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then begin
SetCapture(Button1.Handle);
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
end;

procedure TForm1.Button1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
Button1.Left := Button1.Left - (MouseDownSpot.x - x);
Button1.Top := Button1.Top - (MouseDownSpot.y - y);
end;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
Button1.Left := Button1.Left - (MouseDownSpot.x - x);
Button1.Top := Button1.Top - (MouseDownSpot.y - y);
end;

end;


procedure TForm1.Button2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then begin
SetCapture(Button1.Handle);
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
end;

procedure TForm1.Button2MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
Button2.Left := Button2.Left - (MouseDownSpot.x - x);
Button2.Top := Button2.Top - (MouseDownSpot.y - y);
end;
end;

procedure TForm1.Button2MouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
Button2.Left := Button2.Left - (MouseDownSpot.x - x);
Button2.Top := Button2.Top - (MouseDownSpot.y - y);
end;

end;
end.
Nub83 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TTImer без формы. Lime Помощь студентам 11 29.09.2009 13:54
Полоса на ЖК мониторе Скандербег Компьютерное железо 0 23.08.2009 22:45
Программа без формы Чугусов Общие вопросы Delphi 3 14.02.2009 14:56
Программа без оболочки/формы/GUI aqwapaq Общие вопросы Delphi 5 12.02.2008 12:04
Приложение без формы Wiggle Общие вопросы Delphi 12 18.04.2007 20:20