Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
2-1289631411
Fredwriter
2010-11-13 09:56
2011.02.06
Потоки


15-1288009676
Alx2
2010-10-25 16:27
2011.02.06
Перепись. Последний день.


6-1233829100
n00b T_T
2009-02-05 13:18
2011.02.06
IdMappedPortUDP: считать месагу вручную =)


6-1233828325
WebBrowser+ table
2009-02-05 13:05
2011.02.06
работа с таблицами


2-1289821050
Irisss
2010-11-15 14:37
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский