Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.06;
Скачать: CL | DM;

Вниз

Прорисовка формы   Найти похожие ветки 

 
v_a_belousov   (2010-11-14 21:52) [0]

Здравствуйте! Делаю нестандартную форму. Есть изображение и массив точек по которому создается полигон. Форма обрезается нормально и изображение тоже накладывается, но почему то вокруг него идет некая черная полоса... что то вроде рамки... не могу понять отчего эта рамка появляется и как от нее избавится. Подскажите пожалуйста.

// прорисовка формы
procedure TAuthForm.FormPaint(Sender: TObject);
var PRSkin: TPRSBSkin; SRegion: LongWord; i: integer;
begin
//создаем класс скина
PRSkin := TPRSBSkin.Create;
//загружаем скин из файла
PRSkin.LoadSkinFromFile("C:\Documents and Settings\Владимир\Рабочий стол\bumaga20.prsbs");
//создаем bitmap
  AuthForm.Canvas.Brush.Bitmap := TBitmap.Create;
  //перебираем ригионы
  for i:=0 to PRSkin.RegionCount-1 do
   begin
    //создаем регион по точкам
    SRegion := CreatePolygonRgn(PRSkin.SkinRegions[i].Points[0], Length(PRSkin.SkinRegions[i].Points), ALTERNATE);
    //совмещаем регионы
    CombineRgn(SRegion, SRegion, PRSkin.SkinRegions[i].Region, RGN_OR);
    //задаем чем будем рисовать
    AuthForm.Canvas.Brush.Bitmap := PRSkin.SkinRegions[i].Bitmap;
    //рисуем
    Polygon(AuthForm.Canvas.Handle, PRSkin.SkinRegions[i].Points[0], Length(PRSkin.SkinRegions[i].Points));
   end;
end;

---------------------------------- ПЕРВОЕ ПРИМЕНЕНИЕ ---------------
PRSkin.SetSkin("C:\Documents and Settings\Владимир\Рабочий стол\bumaga20.prsbs", AuthForm);


 
v_a_belousov   (2010-11-14 21:57) [1]

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

// процедура применения скина
procedure TPRSBSkin.SetSkin(FName: string; Form: TObject);
//переменные
var SRegion: longword;
i: integer; IMG: TImage;
begin
//если форма, то обращаемся к ней
if Form is TCustomForm then
with TCustomForm(Form) do
 begin
  //загружаем скин из файла
  LoadSkinFromFile(FName);
  //задаем высоту и ширину форме
  Width := FSkinRegions[0].FBitmap.Width+100;
  Height := FSkinRegions[0].FBitmap.Height+100;
  //
  IMG := TImage.Create(Owner);
  //
  IMG.Align := alClient;
  //
  InsertControl(IMG);
  //создаем bitmap
  Canvas.Brush.Bitmap := TBitmap.Create;
  //перебираем регионы
  for i:=0 to RegionCount-1 do
   begin
    //создаем регион по точкам
    SRegion := CreatePolygonRgn(FSkinRegions[i].FPoints[0], Length(FSkinRegions[i].FPoints), ALTERNATE);
    //совмещаем регионы
    CombineRgn(SRegion, SRegion, FSkinRegions[i].FRegion, RGN_OR);
    //выбираем чем рисовать
    Canvas.Brush.Bitmap := FSkinRegions[i].Bitmap;
    //рисуем
    Polygon(Canvas.Handle, FSkinRegions[i].FPoints[0], Length(FSkinRegions[i].FPoints));
   end;
  //
  BorderStyle := bsNone;
  //

  //применяем регион к форме
  SetWindowRgn(Handle, SRegion, true);
 end;
end;


 
v_a_belousov   (2010-11-15 00:52) [2]

Разобрался сам) карандаш Pen забыл установить в psClear вот он рисовал мне рамку.



Страницы: 1 вся ветка

Текущий архив: 2011.02.06;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.003 c
15-1288158923
palva
2010-10-27 09:55
2011.02.06
Microsoft побеждает


15-1287606541
Юрий
2010-10-21 00:29
2011.02.06
С днем рождения ! 21 октября 2010 четверг


15-1288297735
Юрий
2010-10-29 00:28
2011.02.06
С днем рождения ! 29 октября 2010 пятница


15-1287842168
Фокс Йовович
2010-10-23 17:56
2011.02.06
Налог на чистые болванки и флэшки


2-1290114890
Василий3
2010-11-19 00:14
2011.02.06
веб браузер с проксей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский