OberonCore https://forum.oberoncore.ru/ |
|
Где найти примеры программ (использование WinAPI)? https://forum.oberoncore.ru/viewtopic.php?f=81&t=3075 |
Страница 1 из 1 |
Автор: | Mihal [ Четверг, 16 Декабрь, 2010 20:05 ] |
Заголовок сообщения: | Где найти примеры программ (использование WinAPI)? |
Где можно посмотреть примеры программ на компонентном паскале? Интересует написание приложений для Win32, работа с функциями WinAPI. |
Автор: | Александр Ильин [ Четверг, 16 Декабрь, 2010 20:35 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Mihal писал(а): Где можно посмотреть примеры программ на компонентном паскале? Интересует написание приложений для Win32, работа с функциями WinAPI. http://oberoncore.ru/wiki/blackbox/make_exe
|
Автор: | Пётр Кушнир [ Четверг, 16 Декабрь, 2010 22:13 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Стандартный вопрос: опишите примерный функционал программы, назначение. возможно "неправославный" WinAPI вам и не понадобится, опытные товарищи всегда подскажут. |
Автор: | Mihal [ Пятница, 17 Декабрь, 2010 01:08 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Александр Ильин, спасибо. Если не сложно, покажите как будет выглядеть этот код на КП, пожалуйста: Код: program VerySimple;
uses Windows, Messages; var wClass: TWndClass; Msg: TMsg; Win, Button1: HWND; function WindowProc(Win, Msg, WP, LP: Integer): Integer; stdcall; begin case Msg of WM_COMMAND: if LoWord(WP) = 1001 then PostQuitMessage(0); WM_DESTROY: PostQuitMessage(0) end; Result := DefWindowProc(Win, Msg, WP, LP) end; BEGIN with wClass do begin lpszClassName:= 'CN'; lpfnWndProc := @WindowProc; hbrBackground := 1; hCursor := LoadCursor(0,IDC_ARROW) end; RegisterClass(wClass); Win := CreateWindow(wClass.lpszClassName, 'Это очень простая программа', WS_OVERLAPPED or WS_SYSMENU or WS_MINIMIZEBOX or WS_VISIBLE, 400, 300, 340, 217, 0, 0, hInstance, nil); Button1 := CreateWindowEx(WS_EX_STATICEDGE, 'Button', 'Выход', WS_VISIBLE or WS_CHILD, 264, 170, 66, 20, Win, 1001, hInstance, nil); while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg) end; Halt(Msg.wParam) END. |
Автор: | Mihal [ Пятница, 17 Декабрь, 2010 05:55 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Тема про видео выделена: viewtopic.php?f=35&t=3079 to Пётр Кушнир: И как может помочь это видео? Вот программа, она не компилируется: Код: MODULE VerySimple;
IMPORT SYSTEM, WinApi; VAR wClass: WinApi.WNDCLASS; Msg: WinApi.MSG; Win, Button1: WinApi.HWND; res: INTEGER; Instance: WinApi.HINSTANCE; PROCEDURE WindowProc (Win, msg, WP, LP: INTEGER): INTEGER; BEGIN IF msg = WinApi.WM_DESTROY THEN WinApi.PostQuitMessage(0); RETURN WinApi.DefWindowProc(Win, msg, WP, LP) END WindowProc; BEGIN Instance := WinApi.GetModuleHandle(NIL); wClass.lpszClassName := "CN"; wClass.lpfnWndProc := WindowProc; wClass.hbrBackground := 1; wClass.hCursor := WinApi.LoadCursor(0, SYSTEM.VAL(WinApi.PtrSTR, WinApi.IDC_ARROW)); wClass.hInstance := Instance; res := WinApi.RegisterClass(wClass); Win := WinApi.CreateWindow(wClass.lpszClassName, "Это очень простая программа", WS_OVERLAPPED or WS_SYSMENU or WS_MINIMIZEBOX or WS_VISIBLE, 400, 300, 340, 217, 0, 0, Instance, nil); Button1 := WinApi.CreateWindowEx(WinApi.WS_EX_STATICEDGE, "Button", "Выход", WinApi.WS_VISIBLE or WinApi.WS_CHILD, 100, 100, 100, 100, 0, 0, Instance, 0); WHILE WinApi.GetMessage(Msg, 0, 0, 0) # 0 DO res := WinApi.TranslateMessage(Msg); res := WinApi.DispatchMessage(Msg); END; WinApi.ExitProcess(Msg.wParam) END VerySimple. |
Автор: | Александр Ильин [ Пятница, 17 Декабрь, 2010 06:06 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Mihal писал(а): Вот программа, она не компилируется: Правда?! Может быть, и сообщения об ошибках какие-то появляются? Что не понятно?PS: Я не компилятор, но заметил, что после IF нету закрывающего END (он обязателен). |
Автор: | Александр Ильин [ Пятница, 17 Декабрь, 2010 06:16 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Код: MODULE VerySimple;
IMPORT SYSTEM, WinApi; VAR wClass: WinApi.WNDCLASS; Msg: WinApi.MSG; Win, Button1: WinApi.HWND; res: INTEGER; Instance: WinApi.HINSTANCE; PROCEDURE WindowProc (Win, msg, WP, LP: INTEGER): INTEGER; BEGIN IF msg = WinApi.WM_DESTROY THEN WinApi.PostQuitMessage(0); END; RETURN WinApi.DefWindowProc(Win, msg, WP, LP) END WindowProc; BEGIN Instance := WinApi.GetModuleHandle(NIL); wClass.lpszClassName := "CN"; wClass.lpfnWndProc := WindowProc; wClass.hbrBackground := 1; wClass.hCursor := WinApi.LoadCursor(0, SYSTEM.VAL(WinApi.PtrSTR, WinApi.IDC_ARROW)); wClass.hInstance := Instance; res := WinApi.RegisterClass(wClass); Win := WinApi.CreateWindowEx({}, wClass.lpszClassName, "Это очень простая программа", WinApi.WS_OVERLAPPED + WinApi.WS_SYSMENU + WinApi.WS_MINIMIZEBOX + WinApi.WS_VISIBLE, 400, 300, 340, 217, 0, 0, Instance, 0); Button1 := WinApi.CreateWindowEx(WinApi.WS_EX_STATICEDGE, "Button", "Выход", WinApi.WS_VISIBLE + WinApi.WS_CHILD, 100, 100, 100, 100, Win, 0, Instance, 0); WHILE WinApi.GetMessage(Msg, 0, 0, 0) # 0 DO res := WinApi.TranslateMessage(Msg); res := WinApi.DispatchMessage(Msg); END; WinApi.ExitProcess(Msg.wParam) END VerySimple. ^Q DevLinker.LinkExe VerySimple.exe := VerySimple ~ |
Автор: | Пётр Кушнир [ Пятница, 17 Декабрь, 2010 07:58 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Mihal писал(а): to Пётр Кушнир: И как может помочь это видео? Вот программа, она не компилируется: суть в том, что использовать ББ для собирания винапи-шных форм это как микроскопом гвозди вбивать. ну, конечно, я вам не указ, но форму с кнопками лично я сделаю и без этого вашего винапи. собственно видео - оно об этом. но, конечно, смотреть необязательно, у вас ведь не компилируется.
|
Автор: | Евгений Темиргалеев [ Пятница, 17 Декабрь, 2010 09:31 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Mihal писал(а): Интересует написание приложений для Win32, работа с функциями WinAPI. Уточните, пожалуйста, более подробно, что Вам нужно. Не знаю, куда приткнуть тему.Требуется ли WinAPI по условиям задачи? |
Автор: | Mihal [ Пятница, 17 Декабрь, 2010 15:48 ] |
Заголовок сообщения: | Re: Где можно посмотреть примеры программ? |
Спасибо за объяснение. Евгений Темиргалеев, оставьте в этом разделе. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |