![]() |
eXeL@B —› Программирование —› Перетаскивать окно за любую точку. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 06 февраля 2009 22:04 · Поправил: Mavlyudov · Личное сообщение · #1 Если делать для стандартного приложения в делфи, то перетаскивание будет выглядеть вот так: public procedure ttt(var M:TMessage); message WM_NCHITTEST; end; ....................................... procedure TForm1.ttt(var M:TMessage); begin inherited; if M.Result = htClient then M.Result := htCaption; end; Но у меня консольное приложение, в котором я решил создать форму: form: TForm; form := TForm.Create(Application); ......... Как тут сделать перетаскивание??? нужно ведь как-то динамически привязать message к форме... Что-то типа ReleaseCapture; form.perform(WM_SysCommand, $F012, 0); не помогает.. ![]() |
|
Создано: 10 февраля 2009 04:43 · Поправил: Halt · Личное сообщение · #2 Clerk я там описался похоже, написан действительно бред, ... не помню точно но мысль такая что если включить в uses forms, classes и прочую дрбедень получится +300-400 кб к объему файла, тогда смысл извращаться с созданием формы руками вообще как-то пропадает... , а если писать на Api такого не будет.... F_a_u_s_t сдается мне гуевый интерфейс задумывается для чего-то... но даже в этом случае наоборот как-то делается все.. ![]() ![]() |
|
Создано: 10 февраля 2009 06:21 · Поправил: zombiee · Личное сообщение · #3 |
|
Создано: 10 февраля 2009 12:46 · Личное сообщение · #4 |
|
Создано: 10 февраля 2009 13:30 · Личное сообщение · #5 Вот кстати посмотрел функционал предоставляемый клиенту, вроде нет возможности отловить перемещение мыши в окне: Code:
![]() |
|
Создано: 11 февраля 2009 01:39 · Личное сообщение · #6 Clerk Я сделал так, как сделал zombiee в своем примере: type TMyEventHandler = class public procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ExitClick(Sender: TObject); end; ............ var DragMouse: TMyEventHandler; ................. procedure TMyEventHandler.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; form.Perform(WM_SYSCOMMAND, SC_MOVE+2, 0); end; ................. form:=TForm.Create(Application); form.OnMouseDown:=DragMouse.MouseDown; ![]() |
|
Создано: 11 февраля 2009 02:25 · Поправил: Clerk · Личное сообщение · #7 Mavlyudov Ну я хз, порой трудно понять что нужно. По началу я думол что тебе нужно простое окно(своё) перетаскивать, затем я прочитал что консольное приложение делоешь, я посчитал что ты хочешь консоль перетаскивать.. > нужно ведь как-то динамически привязать message к форме... Не понятно, совсем; такие выражения лудей путоют ![]() ![]() |
<< . 1 . 2 . |
![]() |
eXeL@B —› Программирование —› Перетаскивать окно за любую точку. |