создаю форму, кнопки, обработчик событий формы.
как таскать форму за метку то я знаю :| Код | procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const SC_DragMove = $F012; { a magic number } begin ReleaseCapture; Form1.perform(WM_SysCommand, SC_DragMove, 0); end;
|
а как мне свою, созданную форму потаскать за её тело?
| Код | program BLACK_KOT;
uses Messages,Windows;
var W, Button1,Button2: HWND; WinClass: TWndClass; Msg: TMsg;
function WndProc(hnd, wmsg, wparam, lparam: integer): integer; stdcall; begin Result:=0; case wmsg of WM_COMMAND: begin if lparam=Button1 then Beep(100,100); if lparam=Button2 then PostQuitMessage(0); end;
WM_DESTROY: begin PostQuitMessage(0); end;
else Result:=DefWindowProc(hnd, wmsg, wparam, lparam); end; end;
Procedure CreateMySelf; begin with WinClass do begin lpszClassName:='cln'; lpfnWndProc:=@WndProc; hCursor:=LoadCursor(hInstance, IDC_ARROW); hbrBackground:=COLOR_3DSHADOW; end; RegisterClass(WinClass); W:=CreateWindowEx(WS_EX_WINDOWEDGE, 'cln', 'àíàãðàììà', WS_VISIBLE or WS_POPUPWINDOW, 200, 200, 200, 150, 0, 0, hInstance, nil); Button1:=CreateWindowEx(BS_RIGHTBUTTON, 'BUTTON', 'êíîïêà', (WS_TABSTOP or WS_VISIBLE or WS_CHILD), 5, 5, 96, 25, W, 0, hInstance, nil); Button2:=CreateWindowEx(BS_RIGHTBUTTON, 'BUTTON', 'X', (WS_TABSTOP or WS_VISIBLE or WS_CHILD), 175, 5, 20, 20, W, 0, hInstance, nil);
end;
begin CreateMySelf;
while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end.
|
|