![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Transparent Background [D5, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Ded Moroz © (2005-06-22 16:35:00)Подскажите, plz, как сделать прозрачный фон вместо белого в TListView?
Игорь Шевченко (2005-06-23 22:20:00) [1]Ученик (23.06.05 21:33) [7]
Спасибо. Действительно не заметил.
Ученик (2005-06-23 21:33:00) [2]>Игорь Шевченко © (23.06.05 20:42) [6]
TListView = class(TMyListView);
Игорь Шевченко (2005-06-23 20:42:00) [3]Ученик (22.06.05 22:03) [3]
Все вижу, кроме связи класса TMyListView с ListView1.
Я что-то пропустил ?
Ded Moroz (2005-06-23 15:21:00) [4]ОГРОМНОЕ ВСЕМ СПАСИБО! :)
DVM (2005-06-23 10:12:00) [5]
> Ведь можно же сделать прозрачную форму, значит скорее всего
> и TListView можно.
Нельзя. Если нужно чтобы сквозь ListView "просвечивал" рабочий стол, то используй PaintDesktop() в обработчике WM_ERASEBKGND.
> Картинку вставить у меня пока не получилось - она затирается
> при выделении элементов...
Вставляется без проблем. См. [3] Вроде правильно все.
Ученик (2005-06-22 22:03:00) [6]
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;
или
type
TMyListView = class(TListView)
protected
procedure WMEraseBkgnd(var Message: TMessage); message WM_ERASEBKGND;
end;
TListView = class(TMyListView);
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
ComObj, CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
var
LVBKIMAGE: TLVBKIMAGE;
begin
FillChar(LVBKIMAGE, SizeOf(LVBKIMAGE), 0);
LVBKIMAGE.ulFlags := LVBKIF_SOURCE_URL or LVBKIF_STYLE_NORMAL;
LVBKIMAGE.pszImage := 'c:\ascent.jpg';
LVBKIMAGE.xOffsetPercent := -50;
LVBKIMAGE.yOffsetPercent := -50;
ListView_SetBkImage(ListView1.Handle, @LVBKIMAGE)
end;
procedure TMyListView.WMEraseBkgnd(var Message: TMessage);
begin
DefaultHandler(Message)
end;
Ded Moroz (2005-06-22 20:21:00) [7]Ведь можно же сделать прозрачную форму, значит скорее всего и TListView можно. Картинку вставить у меня пока не получилось - она затирается при выделении элементов...
DVM (2005-06-22 17:35:00) [8]Что значит прозрачный? Как на рабочем столе что ли? Так он там не прозрачный, а просто с картинкой.