Прозрачная форма Lazarus Linux gtk2

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Прозрачная форма Lazarus Linux gtk2

Сообщение Ism » 04.01.2012 01:28:08

Привет
Задачка получилась. Надо сделать круглую форму в линукс, но после гугления выяснилось, что в gtk2 сборке лазарус прозрачность не работает

Form.AlphaBlend:=true;
Form.AlphaBlendValue:=10;

работает только в qt сборках.

Вопрос такой есть ли еще какието способы сделать прозрачную или круглую форму вне зависимости от gtk2 или qt ,
Можно ли напрямую из лазаруса работать с gtk2 на худой конец ? По слухам так можно сделать форму с нужными свойствами.

Это нужно , чтоб в на рабочем висел круглый png рисунок с прозрачным фоном и реагировал на мышь как обычная форма

Lazarus 0.9.30
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Прозрачная форма Lazarus Linux gtk2

Сообщение WAYFARER » 04.01.2012 10:21:09

Ism писал(а):Можно ли напрямую из лазаруса работать с gtk2 на худой конец

Можно, посмотрите примеры в исходниках fpc
(fpc\2.4.4\source\packages\gtk2\examples\)
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Прозрачная форма Lazarus Linux gtk2

Сообщение Ism » 05.01.2012 02:19:17

Кстати , а в msegui прозрачность или круглость можно сделать ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Прозрачная форма Lazarus Linux gtk2

Сообщение Ism » 06.01.2012 19:32:47

Теоретически можно делать снимок рабочего стола под формой и смешивать соответственно картинку и рабочий стол
как здесь http://aix.ucoz.ru/publ/12-1-0-154
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var
Canvas:TCanvas;
ScreenDC:HDC;
begin
ScreenDC := GetDC(0);
Canvas:=TCanvas.Create();
Canvas.Handle:=ScreenDC;
Image1.Canvas.Copyrect(Rect(0,0,Image1.Width,Image1.Height),
Canvas, Rect(0,0,Screen.Width,Screen.Height));
ReleaseDC(0,ScreenDC);
Canvas.Free;
end;


но тут проблема, это можно делать по таймеру или по событию, но только как перехватывать события рабочего стола в Linux Lazarus ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Alex2013, Yandex [Bot] и гости: 190

Рейтинг@Mail.ru