Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизКомпонент TListView Найти похожие ветки
← →
Vedem (2004-07-28 11:29) [0]Здравствуйте! Может кто подскажет, как заставить отрисовывать TListView с установленным ViewStile в vsReport в заголовке колонок "стрелочки сортировки"?
← →
aLexx (2004-07-28 12:37) [1]Что-то в таком роде:
uses CommCtl;
var
HI: HD_ITEM;
H: HWND;
...
H := ListView_GetHeader(ListView1.Handle);
HI.Mask := HDI_TEXT or HDI_BITMAP or HDI_FORMAT;
HI.fmt := HDF_STRING or HDF_BITMAP or HDF_BITMAP_ON_RIGHT;
HI.hbm := Bitmap.Handle; //картинка со стрелкой
HI.pszText := "bla-bla-bla";
SendMessage(H, HDM_SETITEM, 0 {индекс колонки}, Integer(@HI));
← →
Vedem (2004-07-29 10:47) [2]Спасибо! Все замечательно работает, но возникла еще проблемка:
при изменении ширины колонки картинка просто напросто исчезает!
У мастеров есть рекомендации по этому поводу?
← →
Vedem © (2004-07-29 15:52) [3]Ответа так и не последовало :(
Сам кое-чего нарыл, может кому поможет:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, commctrl;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
private
FHeader: HWND;
FBmp: HBITMAP;
FOldListWndProc: TWndMethod;
procedure ListWndProc(var Msg: TMessage);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
item: HD_ITEM;
begin
FBmp := LoadBitmap(0, MAKEINTRESOURCE(OBM_DNARROWD));
item.Mask := HDI_BITMAP or HDI_FORMAT;
item.hbm := FBmp;
item.fmt := HDF_STRING or HDF_BITMAP_ON_RIGHT or HDF_BITMAP;
FHeader := GetWindow(ListView1.Handle, GW_CHILD);
SendMessage(FHeader, HDM_SETITEM, 1, LPARAM(@item));
FOldListWndProc := ListView1.WindowProc;
ListView1.WindowProc := ListWndProc;
end;
procedure TForm1.ListWndProc(var Msg: TMessage);
var
item: HD_ITEM;
begin
if Assigned(FOldListWndProc) then FOldListWndProc(Msg);
if Msg.Msg = WM_NOTIFY then
if HD_NOTIFY(Pointer(Msg.LParam)^).Hdr.code = HDN_ENDTRACK then
begin
item.Mask := HDI_BITMAP or HDI_FORMAT;
item.hbm := FBmp;
item.fmt := HDF_STRING or HDF_BITMAP_ON_RIGHT or HDF_BITMAP;
SendMessage(FHeader, HDM_SETITEM, 0, LPARAM(@item));
end
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.062 c