Вниз
Скачать: 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.011 c
7-75429
Лёша
2003-10-21 12:55
2003.12.23
как получить


9-75071
TButton
2003-06-04 13:35
2003.12.23
DXImageList


14-75326
.Lex
2003-11-28 13:14
2003.12.23
Ксавье Пачеко: Borland Delphi 6(5). Руководство разработчика


14-75379
Vovchik_A
2003-11-28 17:06
2003.12.23
Мда... Я плакалъ...


14-75362
SkyRanger
2003-12-02 02:41
2003.12.23
Халява в сети...




   Наверх