Сейчас на форуме: tyns777 (+5 невидимых) |
eXeL@B —› Программирование —› Народ помогите с WinAPI |
Посл.ответ | Сообщение |
|
Создано: 18 сентября 2007 00:20 · Личное сообщение · #1 Млин задолбался, ничего толком не нашел, может вы подскажите, пишу на API, форма - 2 кнопки и Edit, по нажатию первой кнопки - текст из Edita нужно загнать в переменную ловлю ступор уже третий день подскажите ПЛЗ, исходник ниже....... program Project1; uses windows, messages, commctrl; var WinClass : TWndClass; //переменная класса TWndClass для создания главного окна hInst : HWND; //хандлер приложения Handle : HWND; //локальный хандлер Com1 : HWND; //TButton Com2 : HWND; //TButton Com3 : HWND; //TEdit Msg : TMSG; //сообщение hFont : HWND; //хандлер шрифта const id_1 = 1; //TButton id_2 = 2; //TButton id_3 = 3; //TEdit procedure ShutDown; begin DeleteObject(hFont); UnRegisterClass('Sample Class', hInst); ExitProcess(hInst); end; procedure BOkClick(HW:HWND); var s:string; begin // В переменную S присваивается текст из Edit MessageBox(hw,pchar(s),'Button Ok',MB_OK); end; procedure BCancelClick; begin ShutDown; end; function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //обработчик сообщений begin Result := DefWindowProc(hwnd, msg, wparam, lparam); case Msg of WM_COMMAND: case LoWord(wParam) of id_1 : if HiWord(wParam) = bn_Clicked then BCancelClick; id_2 : if HiWord(wParam) = bn_Clicked then BOkClick(hwnd); end; WM_DESTROY:ShutDown; end; end; begin hInst := GetModuleHandle(nil); with WinClass do begin Style := CS_PARENTDC; //стиль класса главного окна hIcon := LoadIcon(hInstance, IDI_WINLOGO); //иконка программы lpfnWndProc := @WindowProc; //назначение обработчика сообщений hInstance := hInst; hbrBackground := COLOR_BTNFACE + 1; //цвет окна lpszClassName := 'Sample Class'; //класс окна hCursor := LoadCursor(0, IDC_ARROW); //активный курсор end; InitCommonControls; RegisterClass(WinClass); //регистрация класса в системе {Создание главного окна программы} Handle := CreateWindowEx(0, 'Sample Class', 'Loader', WS_OVERLAPPED or WS_SYSMENU or WS_VISIBLE, 244, 127, 180, 80, 0, 0, hInst, nil); {Создание шрифта} hFont := CreateFont( -12, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif'); Com1 := CreateWindow( 'Button', 'Cancel', WS_CHILD or BS_TEXT or WS_VISIBLE, 5, 23, 82, 29,Handle, id_1, hInst, nil); SendMessage(Com1,WM_SETFONT,hFont,0); Com2 := CreateWindow( 'Button', 'OK', WS_CHILD or BS_TEXT or WS_VISIBLE, 87, 23, 84, 29,Handle, id_2, hInst, nil); SendMessage(Com2,WM_SETFONT,hFont,0); Com3:=CreateWindowEx( WS_EX_CLIENTEDGE, 'Edit', '' , WS_CHILD or ES_AUTOHSCROLL or WS_VISIBLE, 5,3,166,21,Handle, id_3, hInst,nil); SendMessage(Com3,WM_SETFONT,hFont,0); //Цикл сбора сообщений while(GetMessage(Msg, Handle, 0, 0)) do begin TranslateMessage(Msg); //прием сообщений DispatchMessage(Msg); //удаление сообщений из очереди end; end. |
|
Создано: 18 сентября 2007 02:07 · Личное сообщение · #2 |
|
Создано: 18 сентября 2007 04:03 · Личное сообщение · #3 |
|
Создано: 20 сентября 2007 09:15 · Личное сообщение · #4 |
|
Создано: 20 сентября 2007 11:02 · Личное сообщение · #5 |
|
Создано: 20 сентября 2007 11:19 · Поправил: Guru_eXe · Личное сообщение · #6 |
|
Создано: 20 сентября 2007 16:11 · Личное сообщение · #7 |
|
Создано: 20 сентября 2007 16:32 · Личное сообщение · #8 |
|
Создано: 20 сентября 2007 17:01 · Личное сообщение · #9 |
|
Создано: 21 сентября 2007 21:00 · Личное сообщение · #10 |
|
Создано: 23 сентября 2007 07:57 · Личное сообщение · #11 |
|
Создано: 23 сентября 2007 22:25 · Личное сообщение · #12 |
|
Создано: 23 сентября 2007 23:15 · Личное сообщение · #13 |
|
Создано: 24 сентября 2007 00:04 · Личное сообщение · #14 |
|
Создано: 24 сентября 2007 00:07 · Личное сообщение · #15 |
|
Создано: 24 сентября 2007 00:56 · Личное сообщение · #16 |
eXeL@B —› Программирование —› Народ помогите с WinAPI |