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

Вниз

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 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-77900
mdsns
2003-07-10 12:53
2003.07.24
Действие при закрытии


3-77802
zep
2003-07-02 23:24
2003.07.24
работа с Alias


14-78118
sucer
2003-07-08 05:00
2003.07.24
Как получить изображение?


8-78009
SimpleUser
2003-04-01 20:47
2003.07.24
Помогите разобраться с FastDIB


4-78202
vitall
2003-05-22 20:32
2003.07.24
ToolBar (ComCtrls)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский