Charm Napisano Wrzesień 18, 2018 Autor Zgłoś Udostępnij Napisano Wrzesień 18, 2018 Witam Niedawno zacząłem sobie pisać w API no i trafiłem na problem - wygląda na banalny ale jakos nie moge obczajć o co biega Program nie chodzi tak jak powinien - wydaje mi sie że powinien narysować kółka pod katem 45 stopni zaczynając od lewego górnego rogu ale program rysuje tylko 1 kółko w rogu no i nie odpowiada wogule - musze resetowac uruchomiony program - powiedzcie mi co robię nie tak bo juz 2 dzień siedze nad tym i nie mogę nic wykminić :( program progs; uses Windows, Messages; Const nazwa : PCHAR ='blabla' ; Var i , j : integer ; Function WinMain( hw:HWND ; un:UINT ; wP:WPARAM ; lP:LPARAM ):LRESULT; stdcall; Var dc : HDC ; ps : PAINTSTRUCT; begin Result := 0; case un of WM_CREATE: begin SetTimer (hw, 1, 1000, Nil) ; end; WM_TIMER : InvalidateRect(hw, Nil, FALSE) ; WM_PAINT : begin i:=i+10; j:=j+10; dc := BeginPaint (hw, ps) ; Ellipse(dc, i, j, i+20, j+20); EndPaint (hw, ps) ; end; WM_DESTROY : begin KillTimer (hw, 1 ) ; PostQuitMessage (0) ; end; else Result := DefWindowProc(hw, un, wP, lP); end; end; Procedure init; Var hw : HWND; wndclass : TWNDCLASS; begin wndclass.style := CS_HREDRAW or CS_VREDRAW ; wndclass.lpfnWndProc := @WinMain ; wndclass.cbClsExtra := 0 ; wndclass.cbWndExtra := 0 ; wndclass.hInstance := hInstance ; wndclass.hIcon := LoadIcon (0 , IDI_APPLICATION) ; wndclass.hCursor := LoadCursor (0 , IDC_ARROW) ; wndclass.hbrBackground := COLOR_WINDOW ; wndclass.lpszMenuName := Nil ; wndclass.lpszClassName := nazwa ; if RegisterClass(wndclass)=0 then MessageBox (0, 'Program wymaga windy NT', nazwa, MB_ICONERROR) ; hw:= CreateWindow (nazwa, 'blablabla', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, 0) ; ShowWindow (hw, SW_SHOW) ; UpdateWindow (hw) ; end; Var msg : TMsg; BEGIN i:=1; j:=1; init; while (GetMessage (msg, 0, 0, 0)) do ; begin TranslateMessage (msg) ; DispatchMessage (msg) ; end; Halt(msg.wParam); END. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Wrzesień 18, 2018 Zgłoś Udostępnij Napisano Wrzesień 18, 2018 kolko pod katem 45 stopni? znaczy zeby wygladalo jak przestrzennie obrocone o ten kat, czy tylko ma byc widoczny kawalek - 45 st. Program sie blokuje bo nie obsluguje zdarzen w petli: while (GetMessage (msg, 0, 0, 0)) do ; begin TranslateMessage (msg) ; DispatchMessage (msg) ; end; Nie potrzebnie dodales srednik po do. Zrob pierwsza linie while tak: while (GetMessage (msg, 0, 0, 0)) do Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Charm Napisano Wrzesień 18, 2018 Autor Zgłoś Udostępnij Napisano Wrzesień 18, 2018 Twardy - wielkie dzięki No właśnie ten średnik hehe - teraz chodzi dobrze :D - jak nieraz się coś samemu napisze i sprawdza jak nie chodzi to kurde błędów nie widać. Tyle razy przeglądałem ten programik i nie widziałem tego średnika. Z tym kątem to moze zamieszałem bo chodziło mi tylko o odchylenie od osi X - tak jak jest w programiku A już zaczynałem wątpić w swoje umiejętności :) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.