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

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

Проблема с регионом [D6, D7, Win95/98, WinXP]


Kolan ©   (2004-09-27 21:23:00) 

Здравствуйте,
Нашел пример с регионом. Делаю свой регион квадрат на белом фоне. Но при запуске форма окна соответствует квадрату а сам квадрат почемуто сдвинут вниз и вправо.


Kolan   (2004-09-28 00:14:00) [1]

Сам шучу сам смеюсь сам себе опладирую BorderStyle=bsNone


Kolan   (2004-09-27 22:28:00) [2]

Вот исходник не молчите:


function BitmapToRegion(Bitmap: TBitmap; TransColor: TColor): HRGN;
var X, Y,k: Integer;
   XStart: Integer;
begin
Result := 0;
Bitmap.width;
Bitmap.height;
with Bitmap do
for Y := 0 to Height - 1 do
 begin
  X := 0;
  while X < Width do
   begin
    // Ïðîïóñêàåì ïðîçðà÷íûå òî÷êè

    while (X < Width) and (Canvas.Pixels[X, Y] = TransColor) do
     Inc(X);
     if X >= Width then
     Break;
     XStart := X;
    // Ïðîïóñêàåì íåïðîçðà÷íûå òî÷êè
    while (X < Width) and (Canvas.Pixels[X, Y] TransColor) do
     Inc(X);
     // Ñîçäà¸ì íîâûé ïðÿìîóãîëüíûé ðåãèîí è äîáàâëÿåì åãî ê
     // ðåãèîíó âñåé êàðòèíêè
     if Result = 0 then
      Result := CreateRectRgn(XStart, Y, X, Y + 1)
    else
      CombineRgn(Result, Result,
      CreateRectRgn(XStart, Y, X, Y + 1), RGN_OR);
    end;
 end;
end;

{***}

procedure TForm1.FormCreate(Sender: TObject);
Var RGN : HRGN;
begin
// ñîçäàåì ðåãèîí äëÿ êàðòèíêè
RGN:= BitmapToRegion(Image1.Picture.Bitmap, clWhite);
// óñòàíàâëèâàåì íîâûé ðåãèîí äëÿ êàðòèíêè
SetWindowRgn(Form1.Handle, RGN, True); // âòîðîé ïàðàìåòð âñåãäà ðàâåí True
end;


Наверх

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