|
Тема
|
Как се мести TMemo чрез drag&drop
|
|
Автор |
vasildimov (непознат
) |
Публикувано | 11.05.05 15:03 |
|
Здравейте !!!
Имам следният проблем:
имам една форма и върху нея имам обект от тип TMemo искам чрез мишката да мога да си го местя по време на програмата.
Благодаря !!!
| |
Тема
|
Re: Как се мести TMemo чрез drag&drop
[re: vasildimov]
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 11.05.05 16:11 |
|
Ето едно нарочно непълно решение. Мързи ме сега да смятам и отместванията, но ако ти е много проблемно и никой друг не ще да помогне, обещавам да се напъна...
const F: boolean=true;
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if F then exit;
Memo1.Left:=Memo1.Left+X;
Memo1.Top:=Memo1.Top+Y;
end;
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
F:=false;
end;
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
F:=true;
end;
Редактирано от Pechenia на 11.05.05 16:14.
| |
Тема
|
Re: Как се мести TMemo чрез drag&drop
[re: vasildimov]
|
|
Автор | eмил (Нерегистриран) |
Публикувано | 12.05.05 08:35 |
|
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: MouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
memo1.perform(WM_SYSCOMMAND,$F012,0);
end;
А ако искаш това да става не винаги, а например само
при натиснат бутон Shift то:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: MouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if not (ssShift in Shift) then inherited
else
begin
ReleaseCapture;
memo1.perform(WM_SYSCOMMAND,$F012,0);
end;
end;
ПП:това работи само за наследниците на TWinControl.
Тоест за TLabel например няма да стане :)
| |
Тема
|
Re: Как се мести TMemo чрез drag&drop
[re: eмил]
|
|
Автор |
vasildimov (непознат
) |
Публикувано | 12.05.05 10:07 |
|
idealno stana :)
mersi mnogo i na dvamata
| |
Тема
|
Re: Как се мести TMemo чрез drag&drop
[re: eмил]
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 12.05.05 10:21 |
|
Това беше трепач
чети и дишай по-леко
| |
|
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if Source is TMemo then
begin
TMemo(Source).Left := X;
TMemo(Source).Top := Y;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TMemo);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Memo1.BeginDrag(True);
end;
Успех!!!
| |
|
|
|
|