Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание красивых форм

604
21 октября 2001 года
Malder
6 / / 20.01.2000
Народ, подскажите как можно создать красивые формы ? Какие компоненты для этого существуют ?
448
21 октября 2001 года
Mr. API
105 / / 20.06.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-10-21 02:07, Malder wrote:
Народ, подскажите как можно создать красивые формы ? Какие компоненты для этого существуют ?
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Что ты понимаешь под словом красивые?
604
21 октября 2001 года
Malder
6 / / 20.01.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-10-21 14:43, Mr. API wrote:
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-10-21 02:07, Malder wrote:
Народ, подскажите как можно создать красивые формы ? Какие компоненты для этого существуют ?
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Что ты понимаешь под словом красивые?
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
Ну чтоб форма была непрямоугльной. Чтобы можно было создавать свой заголовок (не просто там закрыть - крестик, свернуть..... нолик )) , а можно было самому рисовать. Как пример, можно рассотреть WinAMP. Как он сделан ? Хоть прада прямоугольный. Но все же ?
448
22 октября 2001 года
Mr. API
105 / / 20.06.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
Ну чтоб форма была непрямоугльной. Чтобы можно было создавать свой заголовок (не просто там закрыть - крестик, свернуть..... нолик )) , а можно было самому рисовать. Как пример, можно рассотреть WinAMP. Как он сделан ? Хоть прада прямоугольный. Но все же ?
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Как сделать форму не прямоугольной, другого вида, я тебе могу сказать. Причем без компонентов. Я видел такие, но не всегда получается, то, что хочешь, а тут ты сам себе мастер.

На счет, лругого загаловка.
Сделай форму, без заголовка, свой сделай Image'ом.
Если найдешь компонент, напиши. Самому интересно.
591
22 октября 2001 года
x77
40 / / 20.03.2000
Сделать форму непрямоугольной:

<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Code:<HR></TD></TR><TR><TD><FONT SIZE=-1><PRE>
procedure TForm1.FormCreate(Sender: TObject);
var
fRgn: hRGN;
begin
fRgn := CreateRoundRectRgn (0, 0, Width - 1, Height - 1, 64, 64);
SetWindowRgn (Handle, fRgn, TRUE);
DeleteObject (fRgn);
end;
</PRE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Этот пример делает форму с закруглённым краями. Если требуется, чтобы форма была с изменяемыми размерами, то надо ловить OnResize, в нём создавать заново fRgn с учётом новых размеров формы и снова вызывать SetWindowRgn. Для создания кривых, дырявых и прочих форм используются функции

CreateEllipticRgn // эллипс
CreatePolygonRgn // многоугольник
CreatePolyPolygonRgn // серия пересекающихся многоугольников
CreateRectRgn // прямоугольник
CreateRoundRectRgn // закруглённый многоугольник

в сочетании с функцией CombineRgn, позволяющей применять к двум регионам булевские операции (AND, OR, XOR etc.)

Что касается своих системных кнопок, бордюров и пр. Здесь надо ловить событие WM_NCPAINT, возникающее в момент отрисовки &quot;не-клиентской&quot; области формы. В этом событии средствами Win Api можно нарисовать любые системные кнопки, заголовок, frame и т.д.
448
22 октября 2001 года
Mr. API
105 / / 20.06.2000
Для CreatePolygonRgn указывается массив элементов типа TPoint.
Причем, первый и последний элемент в нем должны совпадать.
448
22 октября 2001 года
Mr. API
105 / / 20.06.2000
x77:
>в сочетании с функцией CombineRgn, ?>позволяющей применять к двум регионам ?>булевские операции (AND, OR, XOR etc.).

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

RGN_AND The intersecting parts of two original regions define a new region.
RGN_COPY A copy of the first (of the two original regions) defines a new region.
RGN_DIFF The part of the first region that does not intersect the second defines a new region.
RGN_OR The two original regions define a new region.
RGN_XOR Those parts of the two original regions that do not overlap define a new region.

449
25 октября 2001 года
Fantasist
124 / / 20.06.2000
А вот

http//forum.vingrad.ru/cgi-bin/YaBB/YaBB.pl?board=cpp&amp;action=display&amp;num=1001677957

вопросы к автору.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог