-------------
直接复制过来的,做个笔记
------------------
1.创建窗口并响应事件(不使用VCL)
1 program WindowDemo; 2 3 //{$APPTYPE CONSOLE} 4 5 uses Windows, Messages; 6 7 // 窗口函数,窗口接到消息时被Windows所调用 8 function WindowProc(hwnd : HWND; uMsg : Cardinal; wParam : WPARAM; 9 lParam : LPARAM) : LResult; stdcall; 10 begin 11 Result := 0; 12 case uMsg of 13 // 关闭窗口消息,当用户关闭窗口后,通知主消息循环结束程序 14 WM_CLOSE : PostMessage(hwnd, WM_QUIT, 0, 0); 15 // 鼠标左键按下消息 16 WM_LBUTTONDOWN : MessageBox(hwnd, 'Hello!', '和您打个招呼', 17 MB_ICONINFORMATION); 18 else 19 // 其他消息做默认处理 20 Result := DefWindowProc(hWnd, uMsg, wParam, lParam); 21 end; 22 end; 23 var 24 wndcls : WNDCLASS; // 窗口类的记录(结构)类型 25 hWnd : THandle; 26 Msg : tagMSG; // 消息类型 27 begin 28 wndcls.style := CS_DBLCLKS; // 允许窗口接受鼠标双击 29 wndcls.lpfnWndProc := @WindowProc; // 为窗口类指定窗口函数 30 wndcls.cbClsExtra := 0; 31 wndcls.cbWndExtra := 0; 32 wndcls.hInstance := hInstance; 33 wndcls.hIcon := 0; 34 wndcls.hCursor := LoadCursor(hInstance, 'IDC_ARROW'); 35 wndcls.hbrBackground := COLOR_WINDOWFRAME; 36 wndcls.lpszMenuName := nil; 37 wndcls.lpszClassName := 'WindowClassDemo'; // 窗口类名称 38 // 注册窗口类 39 if RegisterClass(wndcls) = 0 then 40 Exit; 41 // 创建窗口 42 hWnd := CreateWindow( 43 'WindowClassDemo', // 窗口类名称 44 'WindowDemo', // 窗口名称 45 WS_BORDER or WS_CAPTION or WS_SYSMENU, // 窗口类型 46 Integer(CW_USEDEFAULT), 47 Integer(CW_USEDEFAULT), 48 Integer(CW_USEDEFAULT), 49 Integer(CW_USEDEFAULT), 50 0, 51 0, 52 hInstance, 53 nil 54 ); 55 if hWnd = 0 then 56 Exit; 57 // 显示窗口 58 ShowWindow(hWnd, SW_SHOWNORMAL); 59 UpdateWindow(hWnd); 60 // 创建主消息循环,处理消息队列中的消息并分发 61 // 直至收到WM_QUIT消息,退出主消息循环,并结束程序 62 // WM_QUIT消息由PostMessage()函数发送 63 while GetMessage(Msg, hWnd, 0, 0) do 64 begin 65 TranslateMessage(Msg); 66 DispatchMessage(Msg); 67 end; 68 end.
2. 99乘法表
1 program NineNine; 2 3 {$APPTYPE CONSOLE} 4 5 uses 6 SysUtils; 7 8 procedure jiujiuTable(); 9 var 10 i,j:Integer; 11 begin 12 for i:=1 to 9 do 13 begin 14 for j:=1 to i do 15 write(j:3,'*',i,'=',i*j:2); 16 Writeln; 17 end; 18 end; 19 20 begin 21 Writeln('9x9乘法表:'); 22 jiujiuTable(); 23 Readln;//防止一闪而过 24 end.