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

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

Как создать графический компонент нестандартного вида [D5, Win95/98, WinME, NT4, Win2k, WinXP]


komusito ©   (2005-04-01 05:42:00) 

Видел круглые кнопки, стекляные ComboBoxы, ProgressBarы...
Как это написать как отдельный компонент ? И вообще подскажите как Виндовс "дружит" с интерфейсом (ну как кнопка себя рисует и почему в ХР она такая, а 98 другая ?)


Юрий Зотов   (2005-04-18 15:28:00) [1]

> komusito   (01.04.05 05:42)  

> Как это написать как отдельный компонент?

Вот здесь найдете хороший пример:
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/farregion.htm

> И вообще подскажите как Виндовс "дружит" с инетерфейсом.

Визуальные компоненты VCL (контролы) делятся на два класса - оконные и графические. Графические - это просто рисунки, о которых Windows ничего не знает и поэтому они рисуются кодом самой VCL (часто - с использованием фунций WinAPI). Оконные же - это, фактически, обертки вокруг контролов самой Windows и их рисует сама Windows своими собственными средствами (если только мы не устанавливаем стиль окна, который говорит системе, что контрол мы будем рисовать сами). Вот и получается, что разные версии Windows могут рисовать контролы по-разному. Например, XP учитывает, включена ли в системе поддержка тем, или отключена.


Gero   (2005-04-17 11:46:00) [2]


> Как это написать как отдельный компонент ?

Неплохо для начала купить книгу по написанию компонентов и прочесть ее.

> И вообще подскажите как Виндовс "дружит" с интерфейсом (ну
> как кнопка себя рисует и почему в ХР она такая, а 98 другая

Потому что в XP поддерживаются темы, которые рисует UxTheme.dll.


Просто Джо   (2005-04-16 15:10:00) [3]

А, сорри, невнимательно прочитал вопрос.
Вопрос не конкретизирован, ответа нет. Точнее, слишком много ответов, сводятся к раскрытию содержания множества статей в SDK & MSDN.


Просто Джо   (2005-04-16 15:07:00) [4]

Почитай про SetWindowRgn и весь раздел Region *


Eraser   (2005-04-16 14:59:00) [5]

komusito

Регионы нужно использовать (CreateRegion).


Наверх

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