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

Вниз

Создание окна   Найти похожие ветки 

 
BZsder   (2005-01-26 21:12) [0]

Уважаемые мастера можно ли создать окно "произвольной" формы. В данном случае такого типа: http://chatland.chatzme.com/img/forma.gif
И как это сделать?


 
Юрий Зотов ©   (2005-01-26 21:15) [1]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=903


 
Григорьев Антон ©   (2005-01-26 22:45) [2]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83


 
Kolan ©   (2005-01-26 23:44) [3]

Да.
Для этого надо создать регион.
1. Кидаешь на форму Image.
Далее Пишеш вот такую функцию.
function TForm1.BitmapToRegion(Bitmap: TBitmap; TransColor: TColor): HRGN;
var X, Y: Integer;
   XStart: Integer;
begin
Result := 0;
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;

2. А зстем в FormCreate
procedure TForm1.FormCreate(Sender: TObject);
Var RGN : HRGN;
begin
// Создаем регион для картинки
RGN:= BitmapToRegion(Image1.Picture.Bitmap, clWhite);
// Уст новый регион
SetWindowRgn(Form1.Handle, RGN, True);

end;

Не забуть поставить св-во BorderStyle в bsNone.
Теперь чтобы форму "Таскать"
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 If ssLeft In Shift Then
 Begin
   ReleaseCapture;
   SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
 End;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.035 c
3-1106629288
y0zh
2005-01-25 08:01
2005.02.20
Interbase -> Access


4-1104434734
leonidus
2004-12-30 22:25
2005.02.20
Как поставить хук на щелчек левой клавиши мыши?


1-1107726203
Barbos
2005-02-07 00:43
2005.02.20
Добавление эл-в в TreeView


3-1106110286
Janb
2005-01-19 07:51
2005.02.20
Как значения запросы правильно расположить в ДБГРИДЕ?


1-1107427508
Артем К.
2005-02-03 13:45
2005.02.20
ПРОБЛЕМА. Делаю компонент PageControl (наследник TCustomControl)