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

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

Частичная прозрачность [D7, WinXP]


Страницы:   1 2

маленький человек ©   (2005-10-25 05:44:00) 

Доброго времени суток уважаемые... подскажите пожалусто каким образом можно реализовать следующее - частичную прозрачность формы.
Типичным примером является меню "ПУСК". Если поперетаскивать ярлыки из ПУСК->Программы, то  во время перемещения элемент меню будет "градиентно" прозрачным...

Интересно как же это можно сделать самому?

З.Ы. Все вышесказанное относится к ХР...


Antonn   (2005-11-09 16:25:00) [1]

маленький человек   (09.11.05 13:27) [33]
каждый раз заного прорисовывал и все?

угу, говорю ж, от любого события нужно перерисовывать все. думаю тормоза будут на слабых компах


маленький человек   (2005-11-09 13:27:00) [2]

Слушай, а как ты делал чтобы обрабатывались события кнопок, например при нажатии менялись и прочее... каждый раз заного прорисовывал и все?


Antonn   (2005-11-09 13:11:00) [3]

маленький человек   (09.11.05 12:23) [30]
Но вот как быть с кнопками, панелями и другими компонентами... ?

а хз:)
мне надоело искать, я просто картинками понавставлял:)


маленький человек   (2005-11-09 12:41:00) [4]

А ну все... разобрался как прорисовать... просто искать все компоненты, и если у них нет конваса то создать его...  и нарисовать :)


маленький человек   (2005-11-09 12:23:00) [5]

А ну все... с текстом номально... сделал просто так:

   Font.Color := clBlack;
   Rec := Rect(5, 5, bF.Width, 25);
   DrawText(bF.Canvas.Handle, PChar('Расписание'), length('Расписание'), Rec,DT_LEFT or DT_NOPREFIX or DT_WORDBREAK);


вместо textout...

Но вот как быть с кнопками, панелями и другими компонентами... ?


маленький человек   (2005-11-09 11:45:00) [6]

А есть вариант отоброжения обычных компонентов кроме как PaintTo?


маленький человек   (2005-11-09 11:39:00) [7]

странно почему-то у меня не выводятся надписи в этом примере...

 with bF.Canvas do begin
   pen.Color:=clBtnShadow;
   moveto(0,25); lineto(0,0); lineto(bF.width-1,0); lineto(bF.Width-1,25);
   Brush.Style:=bsclear;
   textout(5,(25-textheight('Р')) div 2, 'Расписание');
 end;


Antonn   (2005-11-09 10:56:00) [8]

кнопочки - картинки. Вот, повырезал что смог:)
http://an-files.narod.ru/2.rar


маленький человек   (2005-11-09 09:25:00) [9]

ну ваши забавные кнопочки... то какие образом вы это прорисовывали (компаненты или в рантайме)... так работали с UpdateLayeredWindow... задача, как говорится, одна, а пути решения разные :)


Antonn   (2005-11-09 09:00:00) [10]

а что в самой форме интересует?


маленький человек   (2005-11-09 06:21:00) [11]

Весьма и весьма солидно! а можно все же очень... ну ОЧЕНЬ вежлево и жалобно попросить исходник??? :) думаю ни одному мне будет интересно как это было сделано... если прям совсем ну НИКАК низя дать исходник, мож возможно вы сделаете просто форму которая будет выглядеть как ваша? а то прям слюнками истекаю... :)


Antonn   (2005-11-08 15:29:00) [12]

маленький человек   (08.11.05 10:49) [22]
Если можно, но почему без кода? жалко?

угу:)
http://an-files.narod.ru/ss.rar
прога расписание отображает.


маленький человек   (2005-11-08 10:49:00) [13]

Если можно, но почему без кода? жалко?


Antonn   (2005-11-08 07:38:00) [14]

маленький человек   (08.11.05 5:39) [18]
а делать битмэп все формы и его уже для него делать paintto()

у лабела нет paintto(), только через канвасы плясать, да drawtext()
маленький человек   (08.11.05 7:19) [20]
И можно посмотреть результатов которых удалось достич вам?

без кода, могу программку показать(223Кб) которую написал с помощью этих функций, надо?
Но там лабелов нет.


маленький человек   (2005-11-08 07:19:00) [15]

И можно посмотреть результатов которых удалось достич вам?


маленький человек   (2005-11-08 05:40:00) [16]

И если вы найдете пути решения проблемы прорисовки всех компонентов то сообщите пожалйсто...


маленький человек   (2005-11-08 05:39:00) [17]


> по примеру(из [13]), там также используется UpdateLayeredWindow.
>
> Но проблема, как на битмап скопировать label? У баттона
> есть paintto(), у прогрессбара есть paintto() а вот у лабела
> нет. И найдется еще несколько контроллов, которые не так
> просто изобразить...
> при этом, при каждом "задевании"(активация, нажатие, фокус)
> контроллов, приходится перерисовывать все конроллы на битмап,
>  и обновлять всю форму.


Как думаете, а если просто попробовать прорисовывать не каждый компоненты отдельно, а все вместе... то есть, допустим, разместили мы все компаненты на форме и делать не для каждого paintto(), а делать битмэп все формы и его уже для него делать paintto() ?


Amoeba   (2005-11-07 17:33:00) [18]


> маленький человек   (07.11.05 05:16) [8]
> перевелись мастера делфи :(

А мастерам это просто ни нафиг не нужно. Есть более важные и интересные проблемы, чем такая фигня, как полупрозрачность, а тем более меню.

P.S. Вроде как меню "Пуск" не является настоящим меню Windows, а его имитацией, создаваемой средствами API.


Antonn   (2005-11-07 16:23:00) [19]

по примеру(из [13]), там также используется UpdateLayeredWindow.
Но проблема, как на битмап скопировать label? У баттона есть paintto(), у прогрессбара есть paintto() а вот у лабела нет. И найдется еще несколько контроллов, которые не так просто изобразить...
при этом, при каждом "задевании"(активация, нажатие, фокус) контроллов, приходится перерисовывать все конроллы на битмап, и обновлять всю форму.


маленький человек   (2005-11-07 14:33:00) [20]

Да... возможно... но я все же скорее всего имел ввиду - сЫрец (source)... недопонимание?

З.Ы. Хотя может и я просто неправильно термин использовал...


Страницы:   1 2

Наверх

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