Вниз
Скачать: CL | DM;

TCustomListBox vs Columns   Найти похожие ветки 

← →
Phn   (2003-12-11 16:39) [0]

Здравствуйте, Мастера. Я делаю компонент-потомок от TCustomListBox. Там есть такое св-во Columns. Дык вот когда устанавливаешь это свойство > 0, выделенный итем из одной колонки накладываются на соседний в другой. Как сделать, чтобы Brush отрисовывался только на длину строки, как в TreeView, или хотя бы, чтобы строка не перекрывала другие. Вот код отрисовки строк:


Function IsDirectory(Str:String):Boolean;
Begin
Result:=False;
if (Str[1] = "[") and (AnsiLastChar(Str)^ = "]") then
Result:=True;
End;

procedure TAnyListBox.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
Offset: Integer;
begin
with Canvas do
begin
Offset:=2;

If IsDirectory(Items[Index]) Then
Font.Assign(FDirectoriesFont)
Else
Font.Assign(FFileFont);

if odSelected in State Then
Begin
Brush.Color:=FSelectedItemColor;
Font.Color:=FSelectedItemFontColor;
End;

FillRect(Rect);
TextOut(Rect.Left + offset, Rect.Top, Items[Index]);
end;
end;


Заранее всем спасибо.


← →
Sandman25 ©   (2003-12-11 16:42) [1]

Видимо, надо использовать не TextOut, а TextRect


← →
Phn   (2003-12-11 16:47) [2]

Большущее тебе спасибо, Sandman!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
14-75317
Style
2003-11-28 20:20
2003.12.23
Кто из наших Мастеров работает за бугром...???


1-75220
DRONE_
2003-12-10 22:06
2003.12.23
Чтение из exe-файла программы.


14-75314
Учимся
2003-12-01 19:47
2003.12.23
Сформировать массив и упорядочить


14-75359
Gorlum
2003-11-29 13:38
2003.12.23
Тормозят фильмы


1-75187
shiva
2003-12-11 15:59
2003.12.23
поддержка альтернативных языков




   Наверх