Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #61  
Старый 07.12.2012, 00:37
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Немного позже, выдрав лищнее, я скину его и связанные с ним, а то приведённый код несколько не полон.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (07.12.2012)
  #62  
Старый 07.12.2012, 00:40
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Окей. Вот второй день бьюсь с добавлением элемента в ListBox, все не пойму что должно подставляться под lParam и wParam.
Код:
SendMessage(PlayList, LB_ADDSTRING, 1, ???);

Последний раз редактировалось sariman, 07.12.2012 в 00:46.
Ответить с цитированием
  #63  
Старый 07.12.2012, 01:43
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Выбрось ListBox, лучше используй ListView.
Вот, надеюсь ничего не забыл.
Вложения
Тип файла: rar demo.rar (14.2 Кбайт, 19 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (07.12.2012)
  #64  
Старый 07.12.2012, 11:00
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Спасибо большое! Буду разбираться
Ответить с цитированием
  #65  
Старый 08.12.2012, 01:49
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Разобрался, появилось много вопросов...:
1. Как сделать ListView при надобности на одну колонку, т.е. без нумерации?
2. Как все-таки работать с ListBox'ом? В проекте в окне настроек нужно будет отобразить...?
3. Как убрать мерцание элементов на форме? Есть ли в WinAPI что-нибудь аналогичное DoubleBuffered?
4. Как настраивать элементы в Popup Menu для использования чек-элементов (галочки) и радио-элементов? А также устанавливать для них горячие сочетания клавиш (ShorCut) и обрабатывать их?
Заранее благодарен.
Ответить с цитированием
  #66  
Старый 08.12.2012, 01:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

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;
2. Не понял вопроса.
3. Рисовать на битаме, затем вывести битмап на форму. Мерцание происходит из-за того, что при рисовании на форме, ей постоянно посылается сообщение WM_PAINT - отсюда и мерцание.
4. Всё это прописывается в ресурсе при описании меню.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #67  
Старый 08.12.2012, 02:07
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

1. Спасибо)
2. Действительно не правильно поставил вопрос. Имел ввиду покажите как работать с ListBox'ом, просто в проекте будет использоваться в настройках программы при выборе устройства, на который будет выводиться звук.
3. А как рисовать на битмапе?
4. Флаги или каким образом?
Ответить с цитированием
  #68  
Старый 08.12.2012, 02:10
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

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  
Старый 08.12.2012, 02:13
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

3. Класс? Что он реализует и каким образом?
4. А как например обрабатывать сочетания клавиш?
Ответить с цитированием
  #70  
Старый 08.12.2012, 02:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

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  
Старый 08.12.2012, 02:42
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Буду очень Вам благодарен если скинете юнит Я посмотрю как и что к чему там делается. В качестве наглядного примера.
Ответить с цитированием
  #72  
Старый 08.12.2012, 02:54
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот смотри. Там не всё гладко, но мне хватает.
Вложения
Тип файла: rar unit.rar (13.1 Кбайт, 10 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #73  
Старый 08.12.2012, 03:34
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Спасибо большое.
Ответить с цитированием
  #74  
Старый 08.12.2012, 03:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Давай пиши плэйер, посморим что получится.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #75  
Старый 08.12.2012, 20:01
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Окей) Я вижу Вы заинтересовались)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025