![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
/\/\Et@/\|/|$T
Пользователь
Регистрация: 26.03.2007
Сообщений: 89
|
![]()
Здраствуйте!!!
у меня такой вопрос: как зделать нестандартную форму например треугольную или чтоб внутри формы была дыра ?
there are no programmers there is no life
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
![]()
У формы меняешь значения:
BorderStyle в bsNone Color в clFuchsia TransparentColor в True TransparentColorValue в clFuchsia Добавляешь Image1 с рисунком твоей будущей формы. Всё!!! |
![]() |
![]() |
![]() |
#3 |
/\/\Et@/\|/|$T
Пользователь
Регистрация: 26.03.2007
Сообщений: 89
|
![]()
а как с параметрами бордер стайл -bsnone можно мышай перемещать форму
there are no programmers there is no life
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
Так будет правильнее, SF_RgnWindow устанавливает форму
например SF_RgnWindow(sender,SF_RGN_OnlyButt on(sender)); остануться только контрол элементы розбирайся: Код:
![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
![]()
to mrandrey:
Интересно чем же правильней. Результат один и тот же, так зачем писать больше)) to steck: Форму перетаскивать так: Ставишь для твоего рисунка, который у тебя повторяет очертания формы обработчик MouseDown такого вида: procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(WM_SysCommand,$F012,0); end; И всё...двигай сколько душе угодно. Обработчик можно поставить не только для рисунка, но например для панельки на форме и таскать форму за панельку) |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
а правильней тем, что попробуй свой вариант, ну скажем на Win 98 и увидишь что выйдет!! Да и заголовок иногда нужен.
А если форму менять нужно раз 15, что 15 картинок за собой тянуть? ![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
procedure TForm1.FormCreate(Sender: TObject);
var hRgn1, hRgn2: Cardinal; begin ClientWidth := ClientHeight; hRgn1 := CreateEllipticRgn(0, 0, ClientWidth, ClientHeight); //Первый эллипс, все параметры - координаты начала и конца отрисовки hRgn2 := CreateEllipticRgn(ClientWidth div 2 - 100, ClientHeight div 2 - 100, ClientWidth div 2 + 100, ClientHeight div 2 + 100); CombineRgn(hRgn1, hRgn2, hRgn1, RGN_XOR); //объединяем два региона, вычитая второй из первого и помещая результат в первый SetWindowRgn(Handle, hRgn1, true); // выводим результат end; В результате получается грамотный бублик
Не надо ничего усложнять. Все достаточно тривиально.
Последний раз редактировалось Shuraken; 26.04.2007 в 11:40. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
![]()
to mrandrey:
Ну 98, слава богу, сейчас за редким исключением только в страшном сне увидишь, а вот с твоим вариантом попробуй сделать действительно сложную форму. С моим вариантом это дело пяти секунд. |
![]() |
![]() |
![]() |
#9 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
Есть такая вещь: FormRGN - набор компонентов, облегчающих работу с регионом самой формы и её заголовка. (В архиве набор компонентов, инструкция, хелп, примеры)
|
![]() |
![]() |
![]() |
#10 |
/\/\Et@/\|/|$T
Пользователь
Регистрация: 26.03.2007
Сообщений: 89
|
![]()
а чё удобная вёщь
there are no programmers there is no life
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать форму невидимой при запуске | dns-s | Общие вопросы Delphi | 3 | 15.08.2009 08:18 |
Помогите советом! Как сделать форму сворачиваемой? | Bezdar | Microsoft Office Excel | 3 | 18.08.2008 13:52 |
Как сделать форму? | HAMMAN | Помощь студентам | 1 | 29.01.2008 22:11 |
Как сделать форму всегда активной? | londoner | Общие вопросы Delphi | 3 | 04.03.2007 14:44 |
Как сделать главную форму невидимой | londoner | Общие вопросы Delphi | 10 | 06.02.2007 17:11 |