Текущий архив: 2003.12.23;
Скачать: 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 вся ветка
Текущий архив: 2003.12.23;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.006 c