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

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

Скинообразная форма непрямоугольногоя [D7, WinXP]


Dmitry_04 ©   (2005-02-02 15:24:00) 

Я делаю программу со скинообразной и непрямоугольной формой... Форма у меня прорисовывается по картинке вот как:

var
regn, tmpRegn: integer;
x, y: integer;
begin
regn := CreateRectRgn(0, 0, Form1.ClientWidth, Form1.ClientHeight);
for x := 1 to Image1.Width do
for y := 1 to Image1.Height do
if Image1.Picture.Bitmap.Canvas.Pixels[x-1, y-1] = clSilver then
 begin
 tmpRegn := CreateRectRgn(Image1.Left+x-1, Image1.Top+y-1, Image1.Left+x, Image1.Top+y);
 CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
 DeleteObject(tmpRegn);
 end;
SetWindowRgn(Form1.handle, regn, true);

т.е. вырезает цвет clSilver(серый). А вопрос заключается в следующем: не вызерается форма по цвету почему-то если изображение расстынуто (Stretch=true). Что в таком случае делать?


nnm   (2005-02-03 13:25:00) [1]

Почему? :)


Kerk   (2005-02-03 04:04:00) [2]

Dmitry_04   (02.02.05 15:24)
Скинообразная форма непрямоугольногоя


Ну прям цитата из энциклопедии по ботанике :)


Dmitry_04   (2005-02-03 02:11:00) [3]

Почему никто не пишет? :((( Помогите пожалуйста! я заметил вот что еще: условие

if Image1.Canvas.Pixels[x-1, y-1] = clSilver then

определяет все остальные точки черным цветом после реального размера фотографии в Imag-е... несмотря на то что оно расстянуто... Пробовал на Form1.Canvas но это не работает в событии OnCreate и OnShow. Сработало когда я чисто для интереса кинул на форму кнопку и при нажатии на нее... Но увы мне нужно при запуске программы это...:( Есть ли какойнибудь еще способ определения цвета определенной точки в расстянутом Image?


Dmitry_04   (2005-02-02 20:49:00) [4]

Я вроде как сначала понял в чем дело, Image1.Picture.Bitmap.Canvas.Pixels[x-1, y-1] поменял на Image1.Canvas.Pixels[x-1, y-1] и всеравно не работает...:(


Dmitry_04   (2005-02-02 17:53:00) [5]

Еще один небольшой вопросик по теме... Как обратно вернуть форму в прямоугольный вид?


Dmitry_04   (2005-02-02 17:09:00) [6]

Неужели никто не знает как это сделать?


Наверх

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