|
#1
|
|||
|
|||
Отрисовка ListBox
Добрый день всем! всех с 23 февраля!
начал делать mp3-плеер (курсовой проект), возникла необходимость собственной отрисовки компонента ListBox (использую как плейлист), проблема в том, что не могу нормально вывести названия песен, названия выводятся с первой строки listbox, и при прокрутке плейлиста остаются на месте, либо прокручиваются, но при даблклике на строке опять идут с первой строки в listbox. прикладываю код, где названия остаются на месте, т.к. другой исходник где-то на флехе... Код:
procedure TForm1.PlaylistDrawItem(Control: TWinControl; Index: Integer; Rect: Trect; State: TOwnerDrawState); var y: integer; x: integer; y1:integer; begin y:=5; y1:=35; with Playlist.Canvas do begin for i:=0 to Playlist.Count-1 do begin Brush.Color:=clBlack; Rectangle(10,y,290,y1); Brush.Color:=clGray; Rectangle(12,y+2,288,y1-2); TextOut(40,y+10,Playlist.Items[i]); y:=y+40; y1:=y1+40; end; end; end; ткните в каком направление надо копать. если кто-то предоставит код буду просто счастлив если не в тот раздел, то переместите тему, плиз. |
#2
|
|||
|
|||
Копать в сторону головы.
Ответь для себя на следующие вопросв: 1. Как по русски можно перевести название обработчика? 2. Что за параметр Rect у этого обработчика? 3. Что за параметр Index у этого обработчика? После того, как правильно ответишь на эти вопросы, тебе все станет ясно. |
#3
|
|||
|
|||
lmikle, я конечно понимаю что возможно все проще чем кажется, но можно еще один пинок, более целенаправленный?
|
#4
|
|||
|
|||
Да, конечно.
Просто я указал вопросы, ответ на которые объяснит тебе твою ошибку. И ты сам прекрасно все поправишь. |
#5
|
||||
|
||||
Посторонний пинок
Короче он хочет сказать что параметр Rect является областью которая отрисовывается данным Item'ом. Просто к параметрам Rectangle, LineTo и пр. добавляй Rect.Left к X и Rect.Top к Y
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |