Пятница, 19.04.2024, 15:34
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Delphi » Создание mp3 плеера на Delphi » двустрочный листбокс
двустрочный листбокс
trolololДата: Суббота, 07.07.2012, 01:36 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
возможно ли сделать чтобы в листбоксе две строки были за одну или в любом другом похожем компоненте?
 
xaramamburuДата: Воскресенье, 08.07.2012, 18:39 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Устанавливайте свойство ItemHeight у ListBox так, чтобы вошли две строки. А затем в процедуре отрисовки:
TextOut(Rect.Left + w1, Rect.Top+h1, 'Текст отрисовки');// Первая строка
TextOut(Rect.Left + w2, Rect.Top+h2, 'Текст отрисовки');// Вторая строка
где w1 - сдвиг в точках от левого края в первой строке ;
h1 - сдвиг в точках от верхнего края для первой строки ( обычно 0);
w2 - сдвиг в точках от левого края во второй строке ;
h2 - сдвиг в точках от верхнего края для второй строки.
Например ItemHeight->30;
TextOut(Rect.Left + 10, Rect.Top, 'Текст отрисовки');// Первая строка
TextOut(Rect.Left + 10, Rect.Top+15, 'Текст отрисовки');// Вторая строка
Пример процедуры отрисовки можно посмотреть здесь на форуме http://basicsprog.ucoz.ru/forum/4-4-5 , там несколько раз проскакивает эта процедура, а также в комментариях (комментарий 67) по созданию mp3 плеера http://basicsprog.ucoz.ru/publ/6-1-0-20 . Более сложные варианты, например с картинками ищите в интернете там куча примеров. smile
 
trolololДата: Понедельник, 09.07.2012, 22:41 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
огромнейшая благодарочка!
 
SnakeD3Дата: Суббота, 29.12.2012, 01:20 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
добавлю может кому пригодится. делал так:
свойство листбокста ставлю
style:=lbOwnerDrawFixed;
затем свойсвто ItemHeight:=30;//высота которая нужна мне
и потом событие листбокса

Код
procedure TForm1.lst1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin

with lst1 do begin
         Canvas.FillRect(Rect);
         Canvas.Font.Style:=Canvas.Font.Style+[fsBold]; //первая строка жирная
         Canvas.TextOut(Rect.Left+3, Rect.Top, 'Строка 1' ); // где 3 - отступ слева; Top - отступ сверху
         Canvas.Font.Style:=Canvas.Font.Style-[fsBold]; //убираем жирность для второй строки   
         Canvas.TextOut(Rect.Left+3, Rect.Top+13, 'Строка 2')  //+13 делаем вторую строчку на 13 пикселей ниже первой
   end;
end;


Сообщение отредактировал SnakeD3 - Суббота, 29.12.2012, 01:49
 
Форум » Delphi » Создание mp3 плеера на Delphi » двустрочный листбокс
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024Конструктор сайтов - uCoz