Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

как в TlistBox изменить цвет полоски выделеного item-а?   Найти похожие ветки 

 
k-sergey ©   (2004-08-20 10:55) [0]

как в TlistBox изменить цвет полоски выделеного item-а?


 
Анонимщик ©   (2004-08-20 12:12) [1]

OnDrawItem

Use OnDrawItem to write a handler for drawing of the items in list boxes with the Style values lbOwnerDrawFixed, lbOwnerDrawVariable, or lbVirtualOwnerDraw. OnDrawItem occurs when the list box needs to display an item. OnDrawItem occurs only for owner-draw list boxes.


 
k-sergey ©   (2004-08-20 12:33) [2]

это я в справке видал...если бы все понял то не спрашивал бы.


 
Анонимщик ©   (2004-08-20 13:01) [3]

В обработчике OnDrawItem:

 with ListBox1.Canvas do
 begin
   if (odSelected in State) then Brush.Color := clRed else Brush.Color := clWhite;
   Canvas.Brush.Style := bsSolid;
   FillRect(Rect);
   TextOut(Rect.Left + 2, Rect.Top, (Control as TListBox).Items[Index]);
 end;


 
k-sergey ©   (2004-08-20 13:03) [4]

ага спасибо большое.


 
k-sergey ©   (2004-08-21 11:37) [5]

А что можно сделать если вместо Listbox использую FileListBox
там нет этого свойства?


 
Анонимщик ©   (2004-08-21 12:36) [6]

В исходники облом посмотреть? Вот тебе:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, FileCtrl;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type
 TColorSelFileListBox = class(TFileListBox)
 private
   procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
                        end;

procedure TColorSelFileListBox.CNDrawItem(var Message: TWMDrawItem);
var
 State: TOwnerDrawState;
begin
 with Message.DrawItemStruct^ do
 begin
   State := TOwnerDrawState(LongRec(itemState).Lo);
   Canvas.Handle := hDC;
   Canvas.Font := Font;
   Canvas.Brush := Brush;
   if (Integer(itemID) >= 0) and (odSelected in State) then
   begin
     Canvas.Brush.Color := clRed;
     Canvas.Font.Color := clHighlightText
   end;
   if Integer(itemID) >= 0 then
     DrawItem(itemID, rcItem, State) else
     Canvas.FillRect(rcItem);
   if odFocused in State then DrawFocusRect(hDC, rcItem);
   Canvas.Handle := 0;
 end;
end;

var
 FileListBox1: TColorSelFileListBox;

procedure TForm1.FormCreate(Sender: TObject);
begin
 FileListBox1 := TColorSelFileListBox.Create(nil);
 FileListBox1.Parent := self;
end;

end.


 
k-sergey ©   (2004-08-21 20:51) [7]

спасибо.
А в каком исходнике? (хоть знать буду :-) )
ясно понятно что все должно быть так же как у ListBox
но что то найти это у меня не получилось.


 
k-sergey ©   (2004-08-21 20:53) [8]

во, все спасобо еще раз, нашел, блин я просто не подумал что это оно/


 
k-sergey ©   (2004-08-21 21:23) [9]

все ничего но полоска выделения не ровная...
это хорошо заметно на букве - д, в низу. :-\


 
Анонимщик ©   (2004-08-25 12:10) [10]

Исходники нашел? Теперь пойми логику и не доставай.



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

Форум: "Media";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
1-1099493279
Vir
2004-11-03 17:47
2004.11.21
Имя файла


9-1088556762
Xerx
2004-06-30 04:52
2004.11.21
Принцип построения теней


9-1090603229
grouzd[E]v
2004-07-23 21:20
2004.11.21
Collision vs. Angle


1-1099657415
Лам :(
2004-11-05 15:23
2004.11.21
Как в ListView сохранить данные


14-1099610766
default
2004-11-05 02:26
2004.11.21
Забавная задачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский