Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.018 c
14-54268
Darts
2003-02-28 12:29
2003.03.17
Перлы Буша Без комментариев.


14-54308
race1
2003-03-01 12:13
2003.03.17
fic


14-54318
Igor_thief
2003-02-28 18:45
2003.03.17
Components


4-54378
Antosya
2003-01-18 13:09
2003.03.17
Задравствуйте! Помогите, процессы...


14-54310
Jeka
2003-03-01 15:04
2003.03.17
эмулятор unix




   Наверх