![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#61
|
||||
|
||||
|
Немного позже, выдрав лищнее, я скину его и связанные с ним, а то приведённый код несколько не полон.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sariman (07.12.2012)
| ||
|
#62
|
||||
|
||||
|
Окей. Вот второй день бьюсь с добавлением элемента в ListBox, все не пойму что должно подставляться под lParam и wParam.
Код:
SendMessage(PlayList, LB_ADDSTRING, 1, ???); Последний раз редактировалось sariman, 07.12.2012 в 00:46. |
|
#63
|
||||
|
||||
|
Выбрось ListBox, лучше используй ListView.
Вот, надеюсь ничего не забыл. |
| Этот пользователь сказал Спасибо 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. Всё это прописывается в ресурсе при описании меню. |
|
#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Последний раз редактировалось 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; |
|
#71
|
||||
|
||||
|
Буду очень Вам благодарен если скинете юнит
Я посмотрю как и что к чему там делается. В качестве наглядного примера. |
|
#72
|
||||
|
||||
|
Вот смотри. Там не всё гладко, но мне хватает.
|
|
#73
|
||||
|
||||
|
Спасибо большое.
|
|
#74
|
||||
|
||||
|
Давай пиши плэйер, посморим что получится.
|
|
#75
|
||||
|
||||
|
Окей) Я вижу Вы заинтересовались)
|