Форма |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Форма |
nany |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
Извините мне давно было любопытно форму можно сделать какую-нибудь другую - не квадратную?
|
volvo |
Сообщение
#2
|
Гость |
Можно... В DRKB это описывается:
VCL -> TForm -> "Формы нестандартного вида"... Тема переезжает в Дельфи ... |
nany |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
Извини а можешь мне статью отправить на почту nany11@rol.ru, я просто ее не могу найти, заране спасибо -)
|
volvo |
Сообщение
#4
|
Гость |
Вот 3 статьй, а вообще что значит "не могу найти?"
Я привел полный путь к статьям... У тебя сам DRKB есть? Вот тут ссылка на него: Drkb Цитата Здесь приведён полный пример того, как создать круглую форму. Не забудьте создать TButton, чтобы окно можно было закрыть. unit Unit1; Цитата Как создать форму в форме элипса? procedure TForm1.FormCreate(Sender: TObject); Цитата Создание окон произвольной формы (Статья) Вопрос создания непрямоугольных окон часто интересует начинающих программистов и время от времени обсуждается на форумах разработчиков в среде Delphi. А вообще, нужно ли это кому-нибудь? Ответ - да! Это уже было нужно таким известным фирмам, как Symantec (Norton Utilities, Norton CrashGuard), Microsoft (Приложение " Часы" в Windows NT4 может принимать круглую форму, Deluxe CD Player из MS Plus! 98 имеет вид прямоугольника со скругленными краями). У Borland Jbuilder 2 в окне начальной загрузки стрела крана "выскочила" за пределы прямоугольника. Программы для видеокарт TV Capture фирмы AverMedia имитируют пульт управления. Окно переводчика Magic Goody принимает вид гуся, разгуливающего по экрану. Список можно продолжить, а вывод такой: окно "хитрой" формы – это "изюминка" оформления Вашей программы, нечто запоминающееся, дополнительный плюс в борьбе за потенциального покупателя. Главное в этом – не переборщить. Вряд ли будет удобно работать с текстовым редактором в треугольном окне. Окна произвольной формы неплохо смотрятся при начальной загрузке (Splash) и, возможно, в качестве окна "О программе … ". Как это делается? Средствами Delphi – достаточно просто. Приведенные ниже примеры можно также перевести в C++ Builder или Visual C++. type При создании окна непрямоугольной формы используются API функции CreateEllipticRgn, CreateRectRgn, CreatePolygonRgn, CreateRoundRectRgn, CombineRgn. procedure TForm1.FormCreate(Sender: TObject); Если Вы все ввели правильно, то при запуске проекта получите окно в виде щита, как у Norton CrashGuard. Как это получилось, можно понять из схемы 1. Зеленые эллипсы при пересечении образуют линзу, красные эллипсы вычитаются. Размер формы должен позволить разместиться на ней щиту полностью, иначе Вы получите усеченный вариант изображения. Переопределение функции WMNCHitTest позволит перетаскивать окно, захватив его мышкой. procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest); Теперь немного усложним задачу. Создадим фигурный щит Синие фигуры складываются, красные вычитаются. Исходный код приведен ниже: procedure TForm1.FormCreate(Sender: TObject); Попробуем создать что-либо еще более сложное и непохожее на щит. procedure TForm1.FormCreate(Sender: TObject); До сих пор в примерах мы рассматривали регионы с абсолютными значениями линейных величин. Пример непрямоугольного окна, которое масштабирует свою форму в зависимости от его размера. Искодный код, приведенный ниже, создает окно в виде бабочки, причем бабочка исполльзует максимально высоту и ширину исходной формы. procedure TForm1.FormCreate(Sender: TObject); Если грамотно разложить фигуру на элементарные составляющие, то Вам вполне по силам создать окно абсолютно любой формы. Это похоже на детскую игру "конструктор", только Ваши "кубики" намного разнообразнее. Для завершения проекта необходимо создать фоновую картинку, которая подчеркнет границы нового окна. И обязательно установить свойство формы Scaled = False, иначе фоновая картинка и форма могут "разъехаться" при использовании нестандартных видеорежимов или стилей оформления Windows. В заключение следует сказать, что существуют готовые компоненты и библиотеки компонент для решения подобных задач, например, CoolForm, TPlasmaForm. Однако при использовании компонент от сторонних производителей могут возникнуть проблемы лицензионности их использования и проблемы перехода на новую версию компилятора. А приведенные в данной статье примеры компилируются без изменений в исходном коде на Borland Delphi 3.0 - 7.0 и, вероятно, будут совместимы с последующими версиями. |
nany |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
Спасибо за помощь))) я скачаю его себе))
|
Гость |
Сообщение
#6
|
Гость |
извини я все сделала первым сособом она почему то так и осталась квадратной?
|
мисс_граффити |
Сообщение
#7
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Может, прикрепишь проект? (ехе-шник не надо)
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#8
|
Гость |
Не имею понятия, почему у тебя не сработало... Вот мой проект:
A_form.rar ( 2.39 килобайт ) Кол-во скачиваний: 449 Вот что выходит: |
nany |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 21 Пол: Женский Репутация: 0 |
да твой работает спасибо
|
Текстовая версия | 11.01.2025 7:50 |