![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создавать визуальные объекты не на форме, а на десктопе?
h0use © (2003-10-31 09:56:00)
Уважаемые мастера, подскожите как создавать визуальные объекты (например,TLabel) напрямую на десктопе и не создавать форму. Надо для того чтоб создать меню типа OSD у телевизора.
h0use (2003-11-03 15:06:00) [1]
Нет , над ними
Геннадий (2003-11-03 14:08:00) [2]
> Demetrius2003 © (31.10.03 19:17) [10]
> Держи, и наслаждайся :))))
> h := FindWindow("Progman", nil);
> h2 := FindWindowEx(h, 0, "SHELLDLL_defView", nil);
> h:=GetWindow(h2,GW_CHILD);
>
> Static1:=TStatictext.Create(self);
> static1.Caption:="Hello World";
> static1.Left:=100;
> static1.Top:=100;
> static1.ParentWindow:=h;
> static1.Visible:=true;
Я правильно понял, надпись на Рабочем столе будет ПОД иконками?
h0use (2003-11-03 12:19:00) [3]
И еще один минус, так как таким способом мы пишем на окне дестопа, полчается, что все окна будут поверх, а для решения задачи создания OSD меню, нужно чтоб было наоборот, чтоб оно было поверх всех окон.
h0use (2003-11-03 12:02:00) [4]
Т.е. получается, что твой код работает только когда загружен explorer, а если я использую другой софт как оболочку?
Demetrius2003 (2003-10-31 19:17:00) [5]
Держи, и наслаждайся :))))
h := FindWindow("Progman", nil);
h2 := FindWindowEx(h, 0, "SHELLDLL_defView", nil);
h:=GetWindow(h2,GW_CHILD);
Static1:=TStatictext.Create(self);
static1.Caption:="Hello World";
static1.Left:=100;
static1.Top:=100;
static1.ParentWindow:=h;
static1.Visible:=true;
h0use (2003-10-31 17:07:00) [6]
> <SammIk> (31.10.03 17:01) [8]
> Встраиваешься в процесс и создаешь что тебе надо
А подробней...или ссылку где почитать.
SammIk (2003-10-31 17:01:00) [7]
Встраиваешься в процесс и создаешь что тебе надо
h0use (2003-10-31 15:10:00) [8]
Короче я научился через TCanvas напрямую на десктопе писать, НО если какая-то форма двинется под надписью, то текст написанный на ней тоже движется, а как сделать так. Видимо надо создать layer на котором и писать, но как это сделать на Делфи?
Opuhshii (2003-10-31 14:52:00) [9]
аналоги TLabel,,,
TStaticText (на закладке Additional)
удачи,..
h0use (2003-10-31 11:05:00) [10]
мне главное врубиться, это я делаю быстро...дальше я сам. Пока я создаю прозрачную форму, но тормоза при криейте.
Игорь Шевченко (2003-10-31 11:00:00) [11]
h0use © (31.10.03 10:54)
IMHO, рано при таком уровне знаний за такие задачи браться.
h0use (2003-10-31 10:54:00) [12]
> Плохиш_ (31.10.03 10:45) [2]
> >h0use © (31.10.03 09:56)
>
> Может лучше прозрачную форму создать?
Я думал об этом, но считаю что даже прозрачный, но канвас она рисует, а если рисует, то в 1200х1024 на весь экран - это будут тормоза на создании, потом я сомневаюсь, что форма будет рисоваться поверх оверлейного вывода (например, когда кино на весь экран смотришь).
А где взять имена всех наследников от TWinControl? Мне нужны аналоги TLabel
Плохиш_ (2003-10-31 10:45:00) [13]
>h0use © (31.10.03 09:56)
Может лучше прозрачную форму создать?
Игорь Шевченко (2003-10-31 10:38:00) [14]
Типа TLabel - не получится.
Типа наследников TWinControl - использовать метод CreateParented