Jokerjar
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Делай проверку не в цикле а по таймеру | Если без компонентов пишешь, попробуй типо так : program testtimer; uses Windows,Messages; var WinClass:TWndClassA; Handle,Label1,Timer1:Integer; Msg:TMsg; t:integer; procedure timer_do; var s:string; begin inc(t); str(t,s); SetWindowText(Label1,Pchar(s)); end; function WindowProc(hWnd,uMsg,wParam,lParam:Integer):Integer; stdcall; begin if uMsg = WM_DESTROY then begin KillTimer(Handle,Timer1); halt; end; Result:=DefWindowProc(hWnd, uMsg, wParam, lParam); end; begin with WinClass do begin style := CS_CLASSDC or CS_PARENTDC; lpfnWndProc := @WindowProc; hInstance := hInstance; hbrBackground := color_btnface + 1; lpszClassname := 'test_timer'; hCursor := LoadCursor(0, IDC_ARROW); end; RegisterClass(WinClass); Handle:=CreateWindowEx(WS_EX_WINDOWEDGE, 'test_timer', 'test timer', WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU, 363, 278, 305, 65, 0, 0, hInstance, nil); Label1:=Createwindow('Static', '', WS_VISIBLE or WS_CHILD or SS_CENTER, 8, 12, 76, 13, Handle, 0, hInstance, nil); Timer1:=SetTimer(Handle,0,1000,@timer_do); SetWindowText(Label1,'0'); while(GetMessage(Msg,Handle,0,0)) do begin TranslateMessage(msg); DispatchMessage(msg); end; end. |