看看这个,我不知道行不行?(50分)

  • 主题发起人 主题发起人 Rik
  • 开始时间 开始时间
R

Rik

Unregistered / Unconfirmed
GUEST, unregistred user!
1,我想做一个无窗体的程序,如何做到在程序中加入Timer控件或者与Timer控件功能相同的方法?
2,为什么我写了一个很小的无窗体的程序,为什么一运行就结束了?
 
无窗体程序
在工程文件中
Application.ShowMainForm:=false;
创建窗体,加入TIMER。
这样就都解决了。
 
1、zhaohai9说的是一种方法,另一种方法是自己写一个消息循环
2、你没有建立消息循环,所以运行完毕就退出了。

; while (GetMessage(Msg, Handle, 0, 0)) do
; begin
; ; TranslateMessage(Msg);
; ; DispatchMessage(Msg);
; end;
 
所谓的无窗体程序是指没有窗体文件,只有dpr
 
faint~~~~~,
你的dpr工程到底是什么,控制台程序??
真正的无窗体应该是xianjun, 所说
你看看这段代码
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.
 
多人接受答案了。
 
后退
顶部