Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2016, 10:30   #11
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Тык убери OnPopup событие-то, ёмаё! Добавляй/удаляй айтемы только при изменении конфигурации оборудования, а не при каждом тыке юзера.

Вложения
Тип файла: 7z 294625 - RadioItem + GoupIndex.7z (242.9 Кб, 9 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 08.06.2016 в 10:34.
min@y™ вне форума Ответить с цитированием
Старый 08.06.2016, 11:05   #12
phpmullin
Пользователь
 
Регистрация: 03.06.2016
Сообщений: 10
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Тык убери OnPopup событие-то, ёмаё! Добавляй/удаляй айтемы только при изменении конфигурации оборудования, а не при каждом тыке юзера.

Хорошо, если подключил допустим HDMI и программка моя определила при помощи "message WM_DeviceChange" изменения в устройстве то все перересует и опять будет 25. Поэтому я сейчас сделал так.

Добавил глобальную переменную "DefSound". При нажатии на item

Код:
 
var i:TMenuItem;
begin
i:=(Sender as TMenuItem);
DefSound:=i.Tag;
 SoundDefault.Items[i.Tag].Checked:=true;
//.....тут что то делаю
процедура OnPopup.....(Sender: TObject);

Код:
  i := 1;
 while MainMenu1.soundDefault.Items.Count>0 do
 MainMenu1.soundDefault.Items.Clear;
  while BASS_GetDeviceInfo(I, ADeviceInfo) do
  begin
      It2:=TMenuItem.Create(self);
      it2.Caption:=ADeviceInfo.name;
      It2.OnClick := SoundDef;
      It2.RadioItem:=true;
      It2.GroupIndex:=1;
      It2.Tag:=I-1;
      MainMenu1.soundDefault.Items.add(it2);
      it2:=nil;
    i := i + 1;
  end;
 SoundDefault.Items[DefSound].Checked:=true;
end;
phpmullin вне форума Ответить с цитированием
Старый 08.06.2016, 11:17   #13
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
while MainMenu1.soundDefault.Items.Count> 0 do
MainMenu1.soundDefault.Items.Clear;
Ну зачем всё через жопу-то?
Допустим, воткнул ты проектор в HDMI, девайс появился. Зачем весь список-то очищать и пересоздавать? Добавь один пункт и всё. А при отключении - найди соотв. пункт и удали. А то бардак и говнокод.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.06.2016, 11:33   #14
phpmullin
Пользователь
 
Регистрация: 03.06.2016
Сообщений: 10
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Ну зачем всё через жопу-то?
Допустим, воткнул ты проектор в HDMI, девайс появился. Зачем весь список-то очищать и пересоздавать? Добавь один пункт и всё. А при отключении - найди соотв. пункт и удали. А то бардак и говнокод.
Спасибо за советы.
phpmullin вне форума Ответить с цитированием
Старый 08.06.2016, 11:53   #15
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Спасибо за советы.
принято.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание romanzi Общие вопросы Delphi 1 24.08.2011 12:20
Динамическое создание ActionMainMenuBar Paul Hindenburg Общие вопросы Delphi 4 12.11.2009 12:07
MainMenu, RadioItem не видны метки Alter Компоненты Delphi 3 22.07.2009 14:03
List/MENU или Jump Menu с mysql vanDJ PHP 0 09.02.2009 11:19
Динамическое создание фрейма s-force Общие вопросы Delphi 9 05.09.2007 16:56