Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рисование на форме поверх всех компонентов [D6]


QuestionX ©   (2004-08-03 01:21:00) 

Собственно как осуществить сабж.


KSergey   (2004-08-05 09:13:00) [1]

> [6] Алхимик ©   (05.08.04 00:11)

Если я ничего не путаю - так нарисует только по одному окну.
В частности, по двум рядом стоящим кнопкам одновременно - нифига, разумеется.

> [4] QuestionX   (04.08.04 21:10)

Ну напрячься чтоли лень? ;)

http://z-ol.chat.ru/cmp.htm

TStretchHandlesПрозрачный компонент, применяемый для перемещения визуальных элементов формы и изменения их размеров во время работы программы. Во время работы от визуально очень напоминает редактор Delphi

Вот здесь можно посмотреть как умные люди делают ;)


Алхимик   (2004-08-05 00:11:00) [2]


procedure TForm1.Button1Click(Sender: TObject);
var
 DC : THandle;
 Canvas : TCanvas;
 SaveIndex : integer;
begin
 DC := GetWindowDC(Handle);
 try
   Canvas := TControlCanvas.Create;
   with Canvas do
   try
     SaveIndex := SaveDC(DC);
     try
       Handle := DC;
    {Рисуем что надо}     
     finally
       Handle := 0;
       RestoreDC(DC, SaveIndex);
     end;
   finally
     Canvas.Free;
   end;
 finally
   ReleaseDC(Handle, DC);
 end;
end;


Выдрано из VCL. Не разбирался как, но работает. :)


QuestionX   (2004-08-04 21:27:00) [3]

AlphaBlend тоже не подходит - потому как программа должна работать не только под Win2k и выше, но и под Win9X


QuestionX   (2004-08-04 21:10:00) [4]


> KSergey ©   (04.08.04 19:37) [3]
> Внимательнее перечитайте по поводу окна поверх всего...
> И поверьте - это единственный 100% вариант.

Возможно я чего - то не понимаю, но как сделать это окно, которое будет поверх всего прозрачным ? Т.е. чтобы компоненты, которые лежат под ним были видны. Стиль WS_EX_TRANSPARENT не помогает. А если вместо TCustomControl (наследника TWinControl) использовать TGraphicControl то он не ресует поверх компонент.

Что я делаю не так, что этот 100% вариант не работает ?


KSergey   (2004-08-04 19:37:00) [5]

Внимательнее перечитайте по поводу окна поверх всего... И поверьте - это единственный 100% вариант.


QuestionX   (2004-08-04 18:44:00) [6]

Посмотрел, вот только как эти посты относятся к сабжу ?


KSergey   (2004-08-03 07:16:00) [7]

См. последние посты из http://www.delphimaster.ru/cgi-bin/forum.pl?id=1091397868&n=0&web=1


Наверх

Титульная страница Поиск, карта сайта Написать письмо