закруглить края формы delphi

Закруглить края формы delphi

Здраствуйте помогите пожалуйста кто чем может. Как можно закруглить уголки формы?что б смотрелось красивее. раньше я всегда решал этот вопрос вот таким кодом
Form1.Borderstyle := bsNone;
rgn := CreateRoundRectRgn(0,// x-coordinate of the region»s upper-left corner
0, // y-coordinate of the region»s upper-left corner
ClientWidth, // x-coordinate of the region»s lower-right corner
ClientHeight, // y-coordinate of the region»s lower-right corner
40, // height of ellipse for rounded corners
40); // width of ellipse for rounded corners
SetWindowRgn(Handle, rgn, True);

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

закруглить края формы delphiзакруглить края формы delphi
Робинзон ( 2007-06-18 13:36 ) [1]

Что бы передвигать форму вот часть кода
—————-перемещение формы—————-

<Для перемещения формы вне заголовка описываем процедуру>
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;

закруглить края формы delphiзакруглить края формы delphi
oldman © ( 2007-06-18 18:23 ) [2]


> что б смотрелось красивее.

Это ты сам решил, или тебе кто-то сказал? (Кин-Дза-Дза ©)

Источник

Закруглить края формы delphi

закруглить края формы delphi

Трюки на Delphi 7
1. Создание круглой формы:

procedure TForm1.FormCreate(Sender: TObject);
var
f : HRGN;
begin
Form1.Borderstyle := bsNone;
f := CreateRoundRectRgn(0,0,
clientwidth, //x-координата закруглённых краёв
clientheight, //y-координата закруглённых краёв
40, //Высота закруглённых краёв
40); //ширина закруглённых краёв
SetWindowRgn(Handle,f,True);
end;

2. Градиентная заливка формы:

procedure TForm1.FormPaint(Sender: TObject);
var
Row, Ht: Word;
begin
Ht := (ClientHeight + 255) div 256;
for Row := 0 to 255 do
with Canvas do
begin
Brush.Color := RGB(Row, 100, 0);
FillRect(Rect(0, Row*Ht, ClientWidth, (Row+1) * Ht));
end;
end;

3. Скрытие Windows Caption:

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle,GWL_STYLE) AND
NOT WS_CAPTION);
ClientHeight := Height;
Refresh;
end;

закруглить края формы delphi

закруглить края формы delphi

это можно сделать намного проще скачать не сложную прогу «Регионы 7.0″ в которой вы рисуете нужную форму и сохраняете ее в формате txt в блокноте у вас бутет не большой код вашей окружности, вам только останется этот код добавить в Delphi. скачать эту прогу можете здесь.»http://www.delphiexpert.ru/load/soft/regions70.zip»

Недавно бродя по просторам интернета наткнулся на очень интересную программу. Все дело в том что программа позволяет с помощью встроенного визуального редактора создавать формы практически любой сложности (круг, ёлочка, треугольник, звезда), а после чего генерировать код, для вставки его в ваше Delphi приложение. Например, хочу я что бы Форма в моём delphi приложении была не квадратная а овальная. Раньше бы мне пришлось писать все это ручками, но с появлением этой замечательной программы все стало намного проще.

1. Открываем программу, рисуем нужную нам форму
2. Жмем на кнопку преобразовать, выбираем путь и название текстового файла для сохранения в нем кода.
3. Вставляем полученный код в свою программу!
4. Все.

Теперь немного поясню, как вставить полученный код в свою программу. Рассказывать буду на собственном примере. Итак, в текстовом файле у меня получился вот такой код:

X := 211
Y := 248
procedure CreateWindowsRegions(const X, Y : Integer; const RegionHandle : THandle);
var
PointsArray : Array[0..4] of TPoint;
FirstRegion, SecondRegion, CombineRegion : THandle;
begin
PointsArray[0] := Point(0 + X, 0 + Y);
PointsArray[1] := Point(0 + X, 130 + Y);
PointsArray[2] := Point(200 + X, 130 + Y);
PointsArray[3] := Point(110 + X, 70 + Y);
PointsArray[4] := Point(200 + X, 0 + Y);
FirstRegion := CreatePolygonRGN(PointsArray, 5, Winding);
CombineRegion := FirstRegion;
SetWindowRGN(RegionHandle, CombineRegion, true);
end;

Нажимаю CTRL+SHIFT+C
Delphi сгенерировал шаблон для этой процедуры. Ну а дальше все просто, я добавил в шаблон недостающие строчки из полученного кода.
Важно: первые две строчки, у меня этоX := 211 иY := 248 добавлять не надо!

Ну теперь запускайте свое приложение и любуйтесь

Источник

Закруглить края формы delphi

var
tmpReg: HRGN;
begin
tmpRgn := CreateRoundRectRgn(X, Y, X1, Y1, XA, YA);
SetWindowsRgn(Self.Handle, tmpRgn);
end;

где X, Y, X1, Y1 — сам прямоугольник формы (отсчет от левого верхнего угла формы)
XA, YA — размер эллипса закругления углов по горизонтали и вретикали соответственно.
Эксперементируй. И пробуй также:

CreateRectRgn()
CreatePolygonRgn()
CombineRgn()

закруглить края формы delphiОт: CR-LF
Дата:19.02.06 06:02
Оценка:
закруглить края формы delphiОт: Slava Antonovhttp://deadbeef.narod.ru
Дата:19.02.06 07:15
Оценка:

Вам ненравятся лесенка? Тогда нужно смотреть в сторону layered windows — с их помощью можно сделать гладкие края. Для примера можно посмотреть Winamp 5.


Всего хорошего, Слава
ICQ: 197577902

закруглить края формы delphiОт: Slava Antonovhttp://deadbeef.narod.ru
Дата:19.02.06 07:15
Оценка:

Вам ненравятся лесенка? Тогда нужно смотреть в сторону layered windows — с их помощью можно сделать гладкие края. Для примера можно посмотреть Winamp 5.


Всего хорошего, Слава
ICQ: 197577902

закруглить края формы delphiОт: Slava Antonovhttp://deadbeef.narod.ru
Дата:19.02.06 07:37
Оценка:

Тут ко мне на аську кто-то стучался, но из-за того что у него старая, видимо миранда, он моих ответов не видит. Поэтому продуюлирую свою ответ сюда:
«Появились в Вин2000. См. msdn.
Поддреживают альфаканал — поэтому с окном можно делать что тебе вздумается.
Подробности в МСДН. Я не имею привычки использовать аську для советов. Есть вопросы — спрашивай в RSDN.»


Всего хорошего, Слава
ICQ: 197577902

закруглить края формы delphiОт: bayonet1971
Дата:19.02.06 07:42
Оценка:
закруглить края формы delphiОт: Slava Antonovhttp://deadbeef.narod.ru
Дата:19.02.06 08:29
Оценка:

Hello bayonet1971, you wrote:

>> Тут ко мне на аську кто-то стучался, но из-за того что у него старая,
>> видимо миранда, он моих ответов не
>> видит. Поэтому продуюлирую свою ответ сюда:
>> «Появились в Вин2000. См. msdn.
>> Поддреживают альфаканал — поэтому с окном можно делать что тебе
>> вздумается.
>> Подробности в МСДН.

> Я и стучался, раз уж ты указываешь свой номер.

Это не значит, что я собираюсь выступать в роли справочного бюро отвечая по ней на вопросы по программированию. Для этого я использую группы новостей и форумы. Т.к. туда я захожу и отвечаю когда мне удобно и когда мне хочется.

> У меня нету msdn.
> Можешь прислать инфу про это?

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


Всего хорошего, Слава
ICQ: 197577902

закруглить края формы delphiОт: Flamerhttp://users.livejournal.com/_flamer_/
Дата:19.02.06 14:42
Оценка:

Можно. Делаешь битмапку со скругленными углами, цвет, который должен быть прозрачным, выбираешь таким, чтобы его не было больше нигде на рисунке, загружаешь рисунок в TImage, вызываешь функцию

закруглить края формы delphiОт: bayonet1971
Дата:19.02.06 15:15
Оценка:

>Можно. Делаешь битмапку со скругленными углами, цвет, который должен быть
>прозрачным, выбираешь
>таким, чтобы его не было больше нигде на рисунке, загружаешь рисунок в
>TImage, вызываешь функцию

закруглить края формы delphiОт: wellwellhttps://www.softperfect.com
Дата:19.02.06 16:40
Оценка:
закруглить края формы delphiОт: bayonet1971
Дата:19.02.06 16:57
Оценка:
закруглить края формы delphiОт: Flamerhttp://users.livejournal.com/_flamer_/
Дата:19.02.06 22:04
Оценка:

Здравствуйте, bayonet1971, Вы писали:

B>Правда есть большой минус — из-за этой bmp-шки серъезно растет размер
B>иполняемого файла

Сохраняйте в PNG, как вариант. Для загрузки из PNG есть IImgCtx, который идет начиная с IE 4.0.

закруглить края формы delphiОт: bayonet1971
Дата:20.02.06 02:38
Оценка:
закруглить края формы delphiОт: ekamaloff
Дата:20.02.06 06:02
Оценка:

Здравствуйте, bayonet1971, Вы писали:

B>Действительно, все гениальное просто закруглить края формы delphi

Я себе сделал порт, бери если надо:

закруглить края формы delphiОт: bayonet1971
Дата:20.02.06 06:11
Оценка:
закруглить края формы delphiОт: ekamaloff
Дата:20.02.06 06:15
Оценка:

Портировать — значит перевести с одного языка на другой. Порт — корень слова «портировать» закруглить края формы delphi

закруглить края формы delphiОт: Flamerhttp://users.livejournal.com/_flamer_/
Дата:20.02.06 07:41
Оценка:
закруглить края формы delphiОт: bayonet1971
Дата:20.02.06 07:56
Оценка:
закруглить края формы delphiОт: Flamerhttp://users.livejournal.com/_flamer_/
Дата:20.02.06 08:00
Оценка:

Здравствуйте, bayonet1971, Вы писали:

Ну неужели _так_ сложно почитать то, что уже писали, а? Это такой COM-объект, который идет в поставке IE, начиная с версии 4.0. В общем, это не компонент для Дельфи (тьфу).

Источник

Закруглить края формы delphi

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Завсегдатай
Сообщений: 1120
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12

Смышленный
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38

закруглить края формы delphi

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет

Код
var
R1, R2: HRgn;
begin
R1 := CreateRoundRectRgn(0, 0, ClientWidth, ClientHeight, 20, 20);
R2 := CreateRectRgn(0, 300, 420, 330);
CombineRgn(R1, R1, R2, RGN_DIFF);
SetWindowRgn(Handle, R1, True);
end;

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Завсегдатай
Сообщений: 1120
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12

Аццкий Сотона
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет

закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »

[ Время генерации скрипта: 0.1182 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Закруглить края формы delphi

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 127
Регистрация: 8.1.2009

Репутация: нет
Всего: нет

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

Старательный
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 223
Регистрация: 19.10.2006
Где: Молдова

Репутация: нет
Всего: 6

Стэкер «Разработка клиентских Windows-приложений на платформе MS.NET Framework» (623 с.djvu)
Раздел «Создание непрямоугольных форм Windows», стр.12. Книга есть в сети.

Также http://forum.vingrad.ru/topic-82654.html » Как сделать окно неправильной формы?»

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi
Награды: 1

Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 11
Всего: 170

Цитата(gambit @ 24.1.2010, 11:17 закруглить края формы delphi)
А тип приложения какой.
a) WinForms
b) WPFForms

gambit, а что, в WPF есть такое понятие как Form?

Да и топик создан в разделе «Разработка Windows Forms»

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi
Награды: 1

Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40

Цитата(tol05 @ 24.1.2010, 20:38 закруглить края формы delphi)
gambit, а что, в WPF есть такое понятие как Form?

а почему нет? От измены названия суть то не меняется.

Цитата(tol05 @ 24.1.2010, 20:38 закруглить края формы delphi)
Да и топик создан в разделе «Разработка Windows Forms»

на мой взгляд классические WinForm, начинают потихоньку отмирать, по этому ни капли не удивлюсь здесь вопросу о wpf

Добавлено через 1 минуту и 33 секунды

Программист-романтик
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi

Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92

Цитата(gambit @ 25.1.2010, 00:16 закруглить края формы delphi)
а почему нет? От измены названия суть то не меняется.
Цитата(gambit @ 25.1.2010, 00:16 закруглить края формы delphi)
это не значит что их завтра запретят, это просто мое наблюдение, мой прогноз что в течении 3-5 лет, win form уйдет на второй план

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 127
Регистрация: 8.1.2009

Репутация: нет
Всего: нет

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi
Награды: 1

Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40

Цитата(Любитель @ 25.1.2010, 12:22 закруглить края формы delphi)
Ну и WPF, а не WPFForms, если уж придираться к терминологии.

Хорошо исправлюсь, сам люблю когда термины не выворачивают))

Цитата(Bezonik @ 25.1.2010, 12:35 закруглить края формы delphi)
ну допустим, с формами разобрались! есть еще примеры по созданию формы с закругленными концами, чтобы не прямоугольная получалась?

А чем вас не устроил ответ de_Nis. Какие конкретные вопросы?

Добавлено через 8 минут и 19 секунд

public Form1()
<
InitializeComponent();

GraphicsPath path = CreateRoundedRectangle(50, 50, 50, 50, 20);
this.Region = new System.Drawing.Region(path);

Шустрый
закруглить края формы delphi

Профиль
Группа: Участник
Сообщений: 127
Регистрация: 8.1.2009

Репутация: нет
Всего: нет

Цитата(Любитель @ 25.1.2010, 12:22 закруглить края формы delphi)
Ну и WPF, а не WPFForms, если уж придираться к терминологии.

Хорошо исправлюсь, сам люблю когда термины не выворачивают))

Цитата(Bezonik @ 25.1.2010, 12:35 закруглить края формы delphi)
ну допустим, с формами разобрались! есть еще примеры по созданию формы с закругленными концами, чтобы не прямоугольная получалась?

Эксперт
закруглить края формы delphiзакруглить края формы delphiзакруглить края формы delphi
Награды: 1

Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40

Там маленький баг, с тем что отрисовываемая область несовпадает с координатами формы, но у тебя все получится))

закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi закруглить края формы delphi

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »

[ Время генерации скрипта: 0.1251 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *