Вниз
Скачать: CL | DM;

ListView_SetBkImage вообще не работает   Найти похожие ветки 

← →
Michael_K   (2003-07-10 23:52) [0]

Хоть кто-нибудь сумел решить проблему установки фонового рисунка в TListView? Ответа нигде не нашёл,
функция ListView_SetBkImage (описана в ComCtrls.pas) просто не работает :(


← →
Ученик ©   (2003-07-11 07:18) [1]

uses
CommCtrl;

procedure TForm1.FormShow(Sender: TObject);
begin
ListView1.Brush.Bitmap := Image1.Picture.Bitmap;
ListView_SetBkcolor(ListView1.Handle, CLR_NONE);
ListView_SetTextBkcolor(ListView1.Handle, CLR_NONE)
end;


← →
DVM ©   (2003-07-11 09:43) [2]


> ListView_SetBkImage (описана в ComCtrls.pas) просто не работает
>

Она работает, но применять ее грамотно надо. Данная функция позволяет вставить фон исключительно из файла на диске!

Как то так (на память я не помню, вот нашел в яндексе). Тут еще надо обязательно вызывать то ли CoInitialize то ли OleInitialize перед всем этим.

function SetListViewBackImage(ListHandle: THandle; FileName: String;
XOffset, YOffSet: LongInt): LongInt;
var
BKImage: PLVBKImage;
BKSize: LongInt;
BKPath: array[0..255] of Char;
begin
if (Handle = 0) then Exit;
try
BKSize:= SizeOf(TLVBKImage);
GetMem(BKImage, BKSize);
if (FileName = """") then BKImage^.ulFlags:= LVBKIF_SOURCE_NONE else
BKImage^.ulFlags:= LVBKIF_SOURCE_URL or LVBKIF_STYLE_NORMAL;
StrPCopy(BKPath, FileName);
BKImage^.pszImage:= BKPath;
BKImage^.hbm:= 0;
BKImage^.cchImageMax:= 255;
BKImage^.xOffsetPercent:= XOffset;
BKImage^.yOffsetPercent:= YOffSet;
Result:= SendMessage(ListHandle, LVM_SETBKIMAGE, 0, LPARAM(BKImage));
finally
FreeMem(BKImage, BKSize);
end;
end;


> Ученик ©

Фон через Brush очень глючный метод, и, кроме того, не будет работать в XP при подключенном манифесте (т. е. с новыми CommonControls 6).


← →
Michael_K   (2003-07-11 10:55) [3]

Что ListView_SetBkImage, что предложенный вами код возвращает 1
(по MSDN это означает что всё OK), но реально никакой подложки не появляется и даже не проверяется существование
указанного файла с рисунком (т.е. возвращается 1 даже если такого файла на диске нет). CoInitialize также не помогает.
Вам самому удалось подложить фон под TListView через LVM_SETBKIMAGE или ListView_SetBkImage? Хочу увидеть ещё кого-то кроме БГ кому это удалось ;)


← →
DVM ©   (2003-07-11 11:01) [4]


> Michael_K (11.07.03 10:55)

Это не мой код. Это я где-то нашел прямо сейчас. Но я делал почти так раньше сам и у меня работало. Могу прислать пример если напомните почтой.


← →
DVM ©   (2003-07-11 11:03) [5]


> DVM ©

А, забал, еще одно замечание. Все это будет работать только там, где есть Internet Explorer 4.0 и выше.


← →
Michael_K   (2003-07-11 11:38) [6]

> Все это будет работать только там, где есть Internet Explorer 4.0 и выше.
Всё безобразие происходит в XP с IE 6.0, хотя и в 98SE тоже.

> Могу прислать пример если напомните почтой.
Напомнил :)



← →
Ученик ©   (2003-07-11 19:08) [7]

>DVM © (11.07.03 09:43)
Все работает и с манифестом и без глюков, наверное, Delphi правильные попались :-)



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

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



Память: 0.46 MB
Время: 0.012 c
14-78145
Injustic
2003-07-09 10:49
2003.07.24
Коды #


14-78128
Igorexa
2003-07-09 07:20
2003.07.24
DELPHI Help


3-77738
Serval
2003-07-01 08:12
2003.07.24
Данные в отчет из БД


4-78182
777
2003-05-22 00:35
2003.07.24
меню


3-77757
Cranium
2003-06-30 18:50
2003.07.24
Как можно получить список пользователей подключенных к серверу?




   Наверх