![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#61
|
||||
|
||||
![]() Немного позже, выдрав лищнее, я скину его и связанные с ним, а то приведённый код несколько не полон.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sariman (07.12.2012)
|
#62
|
||||
|
||||
![]() Окей. Вот второй день бьюсь с добавлением элемента в ListBox, все не пойму что должно подставляться под lParam и wParam.
Код:
SendMessage(PlayList, LB_ADDSTRING, 1, ???); Последний раз редактировалось sariman, 07.12.2012 в 00:46. |
#63
|
||||
|
||||
![]() Выбрось ListBox, лучше используй ListView.
Вот, надеюсь ничего не забыл. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sariman (07.12.2012)
|
#64
|
||||
|
||||
![]() Спасибо большое! Буду разбираться
![]() |
#65
|
||||
|
||||
![]() Разобрался, появилось много вопросов...:
1. Как сделать ListView при надобности на одну колонку, т.е. без нумерации? 2. Как все-таки работать с ListBox'ом? В проекте в окне настроек нужно будет отобразить...? 3. Как убрать мерцание элементов на форме? Есть ли в WinAPI что-нибудь аналогичное DoubleBuffered? 4. Как настраивать элементы в Popup Menu для использования чек-элементов (галочки) и радио-элементов? А также устанавливать для них горячие сочетания клавиш (ShorCut) и обрабатывать их? Заранее благодарен. |
#66
|
||||
|
||||
![]() 1. Здесь указано сколько и каких колонок добавить (ctrls.pas) в данном случае 2 колонки.
Код:
procedure InsertColumn(hList : HWND); var lvc : TLVCOLUMN; begin lvc.mask := LVCF_TEXT + LVCF_WIDTH; lvc.pszText := ''; lvc.cx := 25; ListView_InsertColumn(hList, 0, lvc); lvc.fmt := LVCFMT_LEFT; lvc.mask := lvc.mask or LVCF_FMT or LVCF_SUBITEM; lvc.pszText := ''; lvc.cx := 300; lvc.iSubItem := 1; ListView_InsertColumn(hList, 1, lvc); end; 3. Рисовать на битаме, затем вывести битмап на форму. Мерцание происходит из-за того, что при рисовании на форме, ей постоянно посылается сообщение WM_PAINT - отсюда и мерцание. 4. Всё это прописывается в ресурсе при описании меню. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#67
|
||||
|
||||
![]() 1. Спасибо)
2. Действительно не правильно поставил вопрос. Имел ввиду покажите как работать с ListBox'ом, просто в проекте будет использоваться в настройках программы при выборе устройства, на который будет выводиться звук. 3. А как рисовать на битмапе? ![]() 4. Флаги или каким образом? |
#68
|
||||
|
||||
![]() 2. Смотри юнит ctrls.pas
3. Так же как и в VCL (у меня для этого также имеется класс); 4. Да, указанием флагов. Код:
ID_MAINMENU MENUEX BEGIN POPUP "&Игра" BEGIN MENUITEM "Новая игра\tF2", MN_NEW MENUITEM "Пауза\tPause", MN_PAUSE MENUITEM "", MFT_SEPARATOR MENUITEM "Выход", MN_EXIT END POPUP "&Настройки" BEGIN POPUP "Игроки" BEGIN MENUITEM "Человек-человек", MN_HCOMP1 MENUITEM "Человек-компьютер", MN_HCOMP2 MENUITEM "Компьютер-компьютер", MN_HCOMP3 END POPUP "Размер поля" BEGIN MENUITEM "17x24\tShift+1", MN_SIZE1 MENUITEM "23x30\tShift+2", MN_SIZE2 MENUITEM "29x36\tShift+3", MN_SIZE3 MENUITEM "35x46\tShift+4", MN_SIZE4 END POPUP "Время хода" BEGIN MENUITEM "7 секунд", MN_WATCH1 MENUITEM "15 секунд", MN_WATCH2 MENUITEM "60 секунд", MN_WATCH3 END POPUP "Сложность игры" BEGIN MENUITEM "Низкая\tCtrl+1", 1410, MFT_RADIOCHECK, MFS_CHECKED MENUITEM "Средняя\tCtrl+2", 1420, MFT_RADIOCHECK MENUITEM "Высокая\tCtrl+3", 1430, MFT_RADIOCHECK END POPUP "Игровое поле" BEGIN MENUITEM "Ромбы\tAlt+1", 1510, MFT_RADIOCHECK, MFS_CHECKED MENUITEM "Окружность\tAlt+2", 1520, MFT_RADIOCHECK MENUITEM "Соты\tAlt+3", 1530, MFT_RADIOCHECK END END POPUP "&Помощь", 0, MFT_RIGHTJUSTIFY BEGIN MENUITEM "&Содержание\tF1", 1200 MENUITEM "", MFT_SEPARATOR MENUITEM "&О программе...", 1210 END END Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 08.12.2012 в 02:12. |
#69
|
||||
|
||||
![]() 3. Класс? Что он реализует и каким образом?
4. А как например обрабатывать сочетания клавиш? |
#70
|
||||
|
||||
![]() 3. Удобство использования битмапом - загрузка/выгрузка из/в файл(а), связь с канвасом и его примитавами для отрисовки.
4. Код:
WM_KEYDOWN: begin if GetKeyState(VK_CONTROL) < 0 then case (LOWORD(wParam)) of ord('B'), ord('b') : SendMessage(Wnd, WM_COMMAND, mnuSound, 0); ord('M'), ord('m') : SendMessage(Wnd, WM_COMMAND, mnuOwnerDraw, 0); ord('O'), ord('o') : SendMessage(Wnd, WM_COMMAND, mnuOpen, 0); ord('S'), ord('s') : SendMessage(Wnd, WM_COMMAND, mnuSave, 0); end else case (LOWORD(wParam)) of VK_F2 : SendMessage(Wnd, WM_COMMAND, mnuNew, 0); VK_F4 : SendMessage(Wnd, WM_COMMAND, mnuPlace, 0); end; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#71
|
||||
|
||||
![]() Буду очень Вам благодарен если скинете юнит
![]() |
#72
|
||||
|
||||
![]() Вот смотри. Там не всё гладко, но мне хватает.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#73
|
||||
|
||||
![]() Спасибо большое.
|
#74
|
||||
|
||||
![]() Давай пиши плэйер, посморим что получится.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#75
|
||||
|
||||
![]() Окей) Я вижу Вы заинтересовались)
|