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

Вниз

Как изменить форму?   Найти похожие ветки 

 
DRUG   (2002-03-12 04:13) [0]

Недавно начал юзать Delphi.Помогите плиз.Как сделать форму не в
виде прямоугольника,а произвольную(не многоугольник),например как
у МП3плеера Sonique? Допустим используя картинку.


 
Neolord   (2002-03-12 04:58) [1]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1; form1bmp: tbitmap;

implementation

{$R *.dfm}

function 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;





















procedure TForm1.FormCreate(Sender: TObject);
var Form1REGION:hrgn;
begin
form1.Color:=clred;
form1bmp:=tbitmap.Create;
form1bmp.loadfromfile("form1bmp.bmp");
form1REGION:=bitmaptoregion(form1bmp,clwhite);
SetWindowRgn(Form1.Handle,Form1REGION, True);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1BMP.free;
end;

end.


 
TAN ©   (2002-03-12 10:45) [2]

Удалено модератором


 
DRUG   (2002-03-14 05:45) [3]

Спасибо большое



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-90823
Geser
2002-03-15 17:00
2002.03.28
Dll und function in DLL


14-91046
DenKop
2002-02-13 00:30
2002.03.28
ShareWare Components


1-90934
Turalyon
2002-03-14 12:14
2002.03.28
Потоки


3-90787
Вадим Андреевич
2002-03-04 08:36
2002.03.28
DBTable_lock record


3-90741
Turalyon
2002-03-01 09:31
2002.03.28
InterBase 6