Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Listbox  (Прочитано 11145 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MS
Помогающий

ru
Offline Offline
Пол: Мужской

« : 21-09-2006 10:55 » 

Подскажите как сделать, чтобы по двойному нажатию на элементе в listbox этот элемент проигрывался
Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 21-09-2006 13:20 » 

что значит "проигрывался"?
Записан

Удачного всем кодинга! -=x[PooH]x=-
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 21-09-2006 19:21 » 

Ребят, это вопрос на уровне Hello World. В любом более менее нормальном учебнике по Дельфи примерно во 2 или третьей главе объясняется что такое событие и обработчик события.

Пишеш обработчик события onSelect (может и по другому называется). Одним из параметров в обработчик поступает номер выбранного Item в списке. В обработчике запускаеш прогрыватель с соответствуюшими параметрами.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-09-2006 19:31 » 

Finch, onChange.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 21-09-2006 23:35 » 

OnDblClick т.к. в задаче сказано "по двойному нажатию на элементе", а не при его изменнении Улыбаюсь

Код:
procedure TForm1.ListBoxDblClick(Sender: TObject);
begin
  //TListBox(Sender).ItemIndex - индекс выделенного элемента
end;
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
MS
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 25-09-2006 09:34 » 

Есть поцедура:

procedure TForm1.Play;
var
Fname: String;
nom: Integer;
Namef, rash : String;
leng,buf1, buf2: Integer;
begin
  Timer1.Enabled := False;

  nom:= ListBox1.ItemIndex;

  Namef := ListBox1.Items.Strings[nom];
  buf2 := LastDelimiter('.',Namef);
  rash := Copy(Namef, buf2, 4);
  buf1 := LastDelimiter('\',Namef);
  Delete(Namef, 1, buf1);
  leng := Length(Namef);
  buf2 := LastDelimiter('.',Namef);
  Delete(Namef, buf2, leng);

  Fname := ListBox1.Items[nom];

  if (rash = '.mp3') or (rash = '.m3u') then
  begin
   With ReadID3Tag(Fname) Do
    Begin
     Label7.Caption := Titel;

     Label8.Caption := Artist;


  end;

  MediaPlayer1.FileName := Fname;

  try
   Mediaplayer1.Open;
  except
    on EMCIDeviceError do
      begin
        ShowMessage('Ошибка обращения к файлу '+
                     ListBox1.Items[ListBox1.ItemIndex]);
        SpeedButton3.Down := False;
        exit;
      end;
  end;
  MediaPlayer1.Play;
  min := 0;
  sec := 0;
  Timer1.Enabled := True;
end;
end;

нужно чтобы значению ListBox1.ItemIndex присваивался тот элемент списка на который я нажму.
« Последнее редактирование: 16-12-2007 17:28 от Алексей1153++ » Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #6 : 25-09-2006 11:03 » 

а разве он не присваивается?
Записан

Удачного всем кодинга! -=x[PooH]x=-
MS
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 25-09-2006 11:14 » 

В том и дело, чтобы я не выбрал начинает проигрывать с первого.
Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #8 : 25-09-2006 11:26 » 

оч. странно... у меня:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(Inttostr(ListBox1.ItemIndex));
end;

end.
работает вполне адекватно.

а когда у тебя TForm1.Play вызывается?
Записан

Удачного всем кодинга! -=x[PooH]x=-
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #9 : 27-09-2006 15:37 » 

Код:
  Namef := ListBox1.Items.Strings[nom];
  buf2 := LastDelimiter('.',Namef);
  rash := Copy(Namef, buf2, 4);
  buf1 := LastDelimiter('\',Namef);
  Delete(Namef, 1, buf1);
  leng := Length(Namef);
  buf2 := LastDelimiter('.',Namef);
  Delete(Namef, buf2, leng);

а зачем это всё?

ExtractFileExt,
ExtractFileName,
etc.
« Последнее редактирование: 16-12-2007 17:29 от Алексей1153++ » Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines