Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Как мне вывести пункты листбокса????   Найти похожие ветки 

 
anod ©   (2003-01-18 22:09) [0]

Ну, вообщем, ловлю я событие WM_DRAWITEM и из него вызываю процедуру:
procedure drawplist(dis: TDrawItemStruct);
var rect: TRECT; i,n:integer; buf: PCHAR;
begin
if Dis.CtlType = ODT_LISTBOX then begin
FillRect(dis.hDC, dis.rcItem, CreateSolidBrush($996633));
n:=0;
for i:=0 to SendMessage(hPlist, LB_GETCOUNT, 0,0)-1 do begin
buf:=PCHAR(SendMessage(hPlist, LB_GETITEMDATA, i,0));
GetClientRect(hPlist, rect);
SetBkMode(dis.hDC, TRANSPARENT);
TextOut(dis.hDC, rect.Left+5, n, buf, Length(Buf));
n:=n+20;
end;
end;
end;


Яхочу заменить фон, а также поменять шрифт и цвет надписей.
Подскажите, пожалуйста как выводить надписи нужно?
Да, и ёще я в событии WM_MEASUREITEM ишу следующее:
if mis.CtlID = IDC_LIST then begin
mis.itemHeight:=15;
Result:=true;
end;

но с высотой пунктов ничего не происходит???


 
CjCrazy ©   (2003-01-18 22:41) [1]

зайди на delphi.vitpc.com и покопайся тама. либо поищи по сайту (благо поиск есть). и точно найдёшь. сам оттуда взял примерчик. кстати очень хорошо работающий. (если не найдёшь, то пиши мылом. поищу у себя в архивах и вышлю)


 
anod ©   (2003-01-18 23:20) [2]

2CjCrazy
Если не сложно, то скинь мне на alvg@nm.ru
Чего-то королевство в дауне, а здесь ничего не могу найти, может я не правильные ключевые слова задаю?
WM_DRWITEM WM_MEASUREITEM...


 
CjCrazy ©   (2003-01-19 17:28) [3]

щас скину.
попробуй организовать поиск с русскими словами. шо-нить типа разноцветных строк и всё в этом духе. так больше шансов найти


 
anod ©   (2003-01-19 20:12) [4]

Спасибо, буду разбираться


 
Nick_N_A ©   (2003-01-21 06:50) [5]

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
Var bm:TBitMap;
begin
bm:=TBitMap.Create;
bm.Width:=ListBox1.Width;
bm.Heigth:=ListBox1.ItemHeigth;
...
ListBox1.Canvas.Draw(rect.Left,Rect.Top,bm);
bm.Free;
end;


 
anod ©   (2003-01-22 18:16) [6]

2Nick_N_A
Хмм, программа полностью на WinApi..


 
Nick_N_A ©   (2003-01-23 06:09) [7]

Понравилось? Работает?


 
anod ©   (2003-01-23 22:49) [8]

2Nick_N_A
Ну если учесть, что у меня нет ни Tform, ни TBitmap ,ни TListbox, то все работать должно.


 
Nick_N_A ©   (2003-01-24 06:21) [9]

Вitmap является временным буфером - чтобы небыло проблем,
а воьще можно исользывать и
ListBox1.Canvas.TextOut(rect.Left,Rect.Top,bm,"message"),
но обрати внимание на:
- ты должен полностью заполнить выделеный тебе квадрат
- State есть флажок if (odSelected in State) then Выделено.
- ListBox1.Style=lbOwnerDrawFixed



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

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
14-54271
Mike B.
2003-02-28 16:33
2003.03.17
Поздравляю всех с концом Интернета!


1-54062
XXX2
2003-03-04 18:55
2003.03.17
Как выбрать каталог без файла с помощью OpenDialog?


1-54000
X3coder
2003-03-06 14:03
2003.03.17
Окошки 8)


14-54264
Юров Владимир
2003-02-28 12:59
2003.03.17
Поля... кругом одни поля!!!


7-54346
ychnik
2003-01-22 18:13
2003.03.17
Глупый вопрос, но все же...