Главная страница
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.47 MB
Время: 0.013 c
11-1229077921
sir tictactoe
2008-12-12 13:32
2011.02.06
не получается создать MCK-проект в BDS2006


2-1289821050
Irisss
2010-11-15 14:37
2011.02.06
Работа с дочерними формами


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


15-1288081624
Polkin
2010-10-26 12:27
2011.02.06
А кто нить делал сканворды?


8-1209231401
Sound
2008-04-26 21:36
2011.02.06
mp3 format