Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > ListBox.Selected


Автор: Wan22 22.9.2012, 20:56
Можно ли прописать строку  >if ListBox1.Selected[3] or ListBox1.Selected[12] or ListBox1.Selected[15] or ListBox1.Selected[24] then <
покороче? Ну и если - да, то покажите как.  smile 
Код

 begin
   if ListBox1.Selected[3] or ListBox1.Selected[12] or ListBox1.Selected[15] or ListBox1.Selected[24] then 
      Lbl5.Caption := Utf8ToAnsi(PChar(msg.LParam))
    else
      Lbl5.Caption := PChar(msg.LParam);
 end;

Автор: БелАмор 22.9.2012, 21:31
Самое простое, что здесь напрашивается - воспользоваться оператором with и вынести ListBox1 за скобки:

Код

  with ListBox1 do
     if Selected[3] or Selected[12] or Selected[15] or Selected[24] then 
      Lbl5.Caption := Utf8ToAnsi(PChar(msg.LParam))
    else
      Lbl5.Caption := PChar(msg.LParam);

Можно, в принципе, написать отдельную функцию для проверки, в которую передавать ссылку на листбокс и массив индексов, но это будет оправдано только при многократном использовании или наличии каких-то дополнительных выгод от такого решения.

Автор: northener 22.9.2012, 23:57
Сам код из топика вызывает недоумение.

Автор: Wan22 23.9.2012, 19:07
Цитата(northener @ 22.9.2012,  23:57)
Сам код из топика вызывает недоумение.

smile Ну что поделать если я самоучка. Поэтому и код наверное странный.    
Ну а написал так по следующей причине:
В листбоксе   около 40 адресов радиостанций. При выделении какой либо станции, начинается проигрывание, и в лейблы выводится информация о потоке. Но у некоторых станций
русские символы названия песен выводится кракозябрами. При всем этом большинство станций отображает титры в лейбле правильно, независимо, русскими они отображаются буквами или английскими. Поэтому решил сделать перекодировку при помощи Utf8ToAnsi только выборочно, где кракозябры. 
P.S. Если проблему с кракозябрами можно решить как-нить более грамотно, то принимаю любую помощь.  smile 

Автор: Vas 24.9.2012, 10:02
А изменение списка радиостанций потребует перекомпиляции проекта?
Создайте файл, в нем храните список радиостанций с дополнительными параметрами. Загружайте в список и уже в зависимости от параметров выполняйте нужные действия. 

Автор: Wan22 24.9.2012, 15:23
Цитата(Vas @  24.9.2012,  10:02 Найти цитируемый пост)
А изменение списка радиостанций потребует перекомпиляции проекта?

В данный момент, потребуется, так как список у меня в массиве. Вообще вывести список станций в файл я уже и сам хочу, чтобы была возможность редактирования
списка юзером. Но это уже другая тема.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)