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

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

Красивая форма. [D2005, XP]


..::KraN::.. ©   (2007-04-05 22:23:00) 

Пожалуйста, подскажите как создать нестандартную форму, типа круглую или с закругленными краями.


Amoeba   (2007-04-06 17:23:00) [1]

Библиотека компонент FormRgn (создание окон непрямоугольной формы):  
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83


SergGG   (2007-04-06 15:38:00) [2]

> REKS   (06.04.07 14:13) [16]
Я Вам отправил проект.
Если что, пишите.


REKS   (2007-04-06 14:13:00) [3]

>> SergGG ©   (06.04.07 12:12) [15]

Тоже самое, ничего нет


SergGG   (2007-04-06 12:12:00) [4]

> REKS   (06.04.07 11:33) [14]
Скорей всего Вы устанавливаете картинку большого размера. И просто процедура долго выполняется. А у Вас просто не хватило терпения подождать до конца выполнения процедуры.
Поместите рис. меньшего размера


REKS   (2007-04-06 11:33:00) [5]

>>> SergGG ©   (06.04.07 11:32) [13]

Все по тому коду сделал - не идет....пришли плиз посмотрю где обшипся :)


SergGG   (2007-04-06 11:32:00) [6]

> REKS   (06.04.07 11:22) [12]
в [5] и есть весь код програмки. Ну если надо, то пришлю


REKS   (2007-04-06 11:22:00) [7]

>> SergGG ©   (06.04.07 11:11) [11]

Не пришлешь программку свою? У меня все тоже самое - формы не видно...

Адрес tornado@nnovgorod.ru


SergGG   (2007-04-06 11:11:00) [8]

> REKS   (06.04.07 10:55) [10]
У меня все работает.
Для формы еще:
BorderStyle=bsNone


REKS   (2007-04-06 10:55:00) [9]

SergGG ©   (06.04.07 10:49) [8]

> nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];

Это цвет, который будет невидимым!

Не понятно, есть картинка из тысяч цветов, какой будет невидимым? Не видно формы вообще, какую бы картинку не вставил


REKS   (2007-04-06 10:53:00) [10]

Sergg   (06.04.07 10:41) [7]

именно картинку


SergGG   (2007-04-06 10:49:00) [11]

> nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];

Это цвет, который будет невидимым!


Sergg   (2007-04-06 10:41:00) [12]

> Вставил картинку, запускаю - формы не видно вообще :)

Видимо Вы вставили один только фон одного цвета, а не картинку


REKS   (2007-04-06 10:11:00) [13]

SergGG ©   (06.04.07 09:07) [5]

Вставил картинку, запускаю - формы не видно вообще :)


SergGG   (2007-04-06 09:07:00) [14]

procedure TForm1.FormCreate(Sender: TObject);
var
 regn, tmpRegn: integer; // регион окна и временный регион
 x, y: integer; // координаты пикселя
 nullClr: TColor; // <прозрачный цвет>
begin
 nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];
 // Image1 это картинка по которой создается форма окна
 regn := CreateRectRgn(0, 0, image1.picture.Graphic.Width,
   image1.picture.Graphic.Height);
 for x := 1 to image1.picture.Graphic.Width do
   for y := 1 to image1.picture.Graphic.Height do
     if image1.picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
     begin
       tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
       CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
       DeleteObject(tmpRegn);
     end;
 SetWindowRgn(form1.handle, regn, true);
end;


В Image1 можешь вставить любую картинку. Наглядней будет смотреться, если картинка будет иметь сплошной фон одного цвета


Steep   (2007-04-06 06:32:00) [15]

SetWindowRgn(hWnd,CreateEllipticRgn(0,0,300,150),TRUE);


MikePetrichenko   (2007-04-06 05:16:00) [16]

Regions->MSDN


Германн   (2007-04-05 23:47:00) [17]


> А ты, брат, эстет.
>

Продолжение сей фразы читать у Гашека в Бравом солдате Швейке :)


Leonid Troyanovsky   (2007-04-05 23:30:00) [18]


> ..::KraN::..   (05.04.07 22:23)  

> Пожалуйста, подскажите как создать нестандартную форму,
> типа круглую или с закругленными краями.

А ты, брат, эстет.

--
Regards, LVT.


Наверх

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