📄 小小程序 (2001年5月12日).txt
字号:
小小程序 (2001年5月12日)
网友更新 分类:所有类别 作者: zhuhongqing(推荐) 推荐:zhuhongqing 阅读次数:371
(http://www.codesky.net)
--------------------------------------------------------------------------------
其实Delphi本质上仍是一种编程语言,只不过它的可视化特性太过强大,使得程序员往往忘了这一点。使用纯C语言编制Windows应用程序的朋友都知道,常规的方法是为Windows提供一个回调函数,在这个回调函数中处理各种消息,而程序的入口是一个名为WinMain的函数。
如果将Delphi看成一个单纯的PASCAL语言,就可以按上述的常规方法编制程序,下面就是这样一个例子,最终生成的可执行程序十分小,只有不到10KB。使用C语言编程的朋友可得会觉得下面的代码很眼熟。
program MyApp;
uses Windows, Messages;
// 回调函数
function AppWindowProc(
hWnd:HWND; uMsg:UINT;
wParam:WPARAM; lParam:LPARAM):LRESULT; stdcall;
begin
Result := 0;
case uMsg of
WM_DESTROY:begin
PostQuitMessage(0);
Exit;
end;
end;
Result :=
DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
var
wc: TWndClass;
hWnd: Integer;
MSG: TMsg;
begin
// 程序从这里开始执行
wc.style := CS_VREDRAW or CS_HREDRAW;
wc.lpfnWndProc := @AppWindowProc;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
wc.hInstance := HInstance;
wc.hIcon := LoadIcon(0, IDI_APPLICATION);
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := (COLOR_BTNFACE+1);
wc.lpszMenuName := nil;
wc.lpszClassName := 'My App';
if RegisterClass(wc)=0 then Exit;
hWnd := CreateWindow(
wc.lpszClassName, 'TEST',
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
0, 0, HInstance, nil);
if hWnd=0 then Exit;
ShowWindow(hWnd, SW_SHOWNORMAL);
while GetMessage(MSG, 0, 0, 0) do begin
TranslateMessage(MSG);
DispatchMessage(MSG);
end;
Halt(MSG.wParam);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -