Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Фото альбом
Карта сайта

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Раскрутка сайта
-Заработок в Net
-}{акинг
-Разное

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-Книги по }{акингу
-PHP Fusion MOD'ы
-Курсовые
-by Kest
Professional Download System
Услуги
Возможно выполнение лаб
работ
и курсовых на Delphi
и Turbo Pascal, обращаться сюда. Дешево
Программа для рисования блок-схем
Популярные статьи
Гостевая книга ... 16161
Панель случайны... 9319
OpenGL и Delphi... 8476
Создание отчето... 7625
Бип из системно... 6816
Invision Power ... 6076
Видео – залог у... 5540
Установка, нас... 5499
Учебник Паскаль 5391
Анимация в комп... 5385
АЙ СИК Ю? АЙ ХА... 5251
Визуальные фильтры 5174
Вызов хранимых ... 5080
Организация зап... 5017
21 ошибка прогр... 4993
Имитационное мо... 4985
Как зарабоатыва... 4841
ТЕХНОЛОГИИ ДОСТ... 4804
Добавление в фо... 4677
Создание дистри... 4405
Реклама
fisher F2
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,182
новичок: altynay
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Сделать прозрачный фон у формы
unit
unit1;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
Button2: TButton;
//
это просто кнопка на форме - для
демонстрации
protected
procedure
RebuildWindowRgn;
procedure Resize;
override;
public
constructor Create(AOwner: TComponent);
override;
end;
var
Form1 :
TForm1;
implementation
// ресурс этой формы
{$R
*.DFM}


{ Прозрачная
форма }
constructor TForm1.Create(AOwner:
TComponent);
begin
inherited;
// убираем сколлбары,
чтобы не мешались
// при изменении размеров
формы
HorzScrollBar.Visible:=
False;
VertScrollBar.Visible:= False;
// строим новый
регион
RebuildWindowRgn;
end;


procedure
TForm1.Resize;
begin
inherited;
// строим новый
регион
RebuildWindowRgn;
end;


procedure
TForm1.RebuildWindowRgn;
var
FullRgn, Rgn:
THandle;
ClientX, ClientY, I: Integer;
begin
//
определяем относительные координаты клиенской
части
ClientX:= (Width - ClientWidth) div 2;
ClientY:=
Height - ClientHeight - ClientX;
// создаем регион для всей
формы
FullRgn:= CreateRectRgn(0, 0, Width, Height);
//
создаем регион для клиентской части формы
// и вычитаем его
из FullRgn
Rgn:= CreateRectRgn(ClientX, ClientY, ClientX +
ClientWidth, ClientY
+
ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn,
rgn_Diff);
// теперь добавляем к FullRgn регионы каждого
контрольного элемента
for I:= 0 to ControlCount -1
do
with Controls[I] do begin
Rgn:= CreateRectRgn(ClientX
+ Left, ClientY + Top, ClientX + Left +
Width, ClientY +
Top + Height);
CombineRgn(FullRgn, FullRgn, Rgn,
rgn_Or);
end;
// устанавливаем новый регион
окна
SetWindowRgn(Handle, FullRgn,
True);
end;
end.



face=Verdana size=3>А как Вам понравится эта форма
?


unit
rgnu;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, Forms, Dialogs,
Buttons,
Menus;


type
TForm1 =
class(TForm)
procedure FormCreate(Sender:
TObject);
procedure Button1Click(Sender:
TObject);
procedure FormPaint(Sender:
TObject);
private
{ Private declarations }
rTitleBar
: THandle;
Center : TPoint;
CapY : Integer;
Circum :
Double;
SB1 : TSpeedButton;
RL, RR :
Double;
procedure TitleBar(Act : Boolean);
procedure
WMNCHITTEST(var Msg: TWMNCHitTest);
message
WM_NCHITTEST;
procedure WMNCACTIVATE(var Msg:
TWMNCACTIVATE);
message WM_NCACTIVATE;
procedure
WMSetText(var Msg: TWMSetText);
message
WM_SETTEXT;
end;


var
Form1:
TForm1;


size=2>implementation


{$R
*.DFM}


size=2>CONST
TitlColors : ARRAY[Boolean] OF TColor
=
(clInactiveCaption, clActiveCaption);
TxtColors :
ARRAY[Boolean] OF TColor =
(clInactiveCaptionText,
clCaptionText);


procedure
TForm1.FormCreate(Sender: TObject);
VAR
rTemp, rTemp2 :
THandle;
Vertices : ARRAY[0..2] OF TPoint;
X, Y :
INteger;
begin
Caption := 'OOOH!
Doughnuts!';
BorderStyle := bsNone; {required}
IF Width
> Height THEN Width := Height
ELSE Height := Width;
{harder to calc if width <> height}
Center :=
Point(Width DIV 2, Height DIV 2);
CapY :=
GetSystemMetrics(SM_CYCAPTION)+8;
rTemp :=
CreateEllipticRgn(0, 0, Width, Height);
rTemp2 :=
CreateEllipticRgn((Width DIV 4), (Height DIV 4),
3*(Width
DIV 4), 3*(Height DIV 4));
CombineRgn(rTemp, rTemp, rTemp2,
RGN_DIFF);
SetWindowRgn(Handle, rTemp,
True);
DeleteObject(rTemp2);
rTitleBar :=
CreateEllipticRgn(4, 4, Width-4, Height-4);
rTemp :=
CreateEllipticRgn(CapY, CapY, Width-CapY,
Height-CapY);
CombineRgn(rTitleBar, rTitleBar, rTemp,
RGN_DIFF);
Vertices[0] := Point(0,0);
Vertices[1] :=
Point(Width, 0);
Vertices[2] := Point(Width DIV 2, Height
DIV 2);
rTemp := CreatePolygonRgn(Vertices, 3,
ALTERNATE);
CombineRgn(rTitleBar, rTitleBar, rTemp,
RGN_AND);
DeleteObject(rTemp);
RL := ArcTan(Width /
Height);
RR := -RL + (22 / Center.X);
X :=
Center.X-Round((Center.X-1-(CapY DIV 2))*Sin(RR));
Y :=
Center.Y-Round((Center.Y-1-(CapY DIV 2))*Cos(RR));
SB1 :=
TSpeedButton.Create(Self);
WITH SB1 DO
BEGIN
Parent
:= Self;
Left := X;
Top := Y;
Width := 14;
Height
:= 14;
OnClick := Button1Click;
Caption :=
'X';
Font.Style := [fsBold];
END;
end;


procedure
TForm1.Button1Click(Sender:
TObject);
begin
Close;
End;


procedure
TForm1.WMNCHITTEST(var Msg:
TWMNCHitTest);
begin
Inherited;
WITH Msg DO
WITH
ScreenToClient(Point(XPos,YPos)) DO
IF
PtInRegion(rTitleBar, X, Y) AND
(NOT
PtInRect(SB1.BoundsRect, Point(X,Y))) THEN
Result :=
htCaption;
end;


procedure
TForm1.WMNCActivate(var Msg:
TWMncActivate);
begin
Inherited;
TitleBar(Msg.Active);
end;


procedure
TForm1.WMSetText(var Msg:
TWMSetText);
begin
Inherited;
TitleBar(Active);
end;


procedure
TForm1.TitleBar(Act: Boolean);
VAR
TF : TLogFont;
R :
Double;
N, X, Y : Integer;
begin
IF Center.X = 0 THEN
Exit;
WITH Canvas DO
begin
Brush.Style :=
bsSolid;
Brush.Color :=
TitlColors[Act];
PaintRgn(Handle, rTitleBar);
R :=
RL;
Brush.Color := TitlColors[Act];
Font.Name :=
'Arial';
Font.Size := 12;
Font.Color :=
TxtColors[Act];
Font.Style :=
[fsBold];
GetObject(Font.Handle, SizeOf(TLogFont),
@TF);
FOR N := 1 TO Length(Caption) DO
BEGIN
X :=
Center.X-Round((Center.X-6)*Sin(R));
Y :=
Center.Y-Round((Center.Y-6)*Cos(R));
TF.lfEscapement :=
Round(R * 1800 / pi);
Font.Handle :=
CreateFontIndirect(TF);
TextOut(X, Y, Caption[N]);
R :=
R - (((TextWidth(Caption[N]))+2) / Center.X);
IF R < RR
THEN Break;
END;
Font.Name := 'MS Sans
Serif';
Font.Size := 8;
Font.Color :=
clWindowText;
Font.Style := [];
end;
end;


procedure
TForm1.FormPaint(Sender: TObject);
begin
WITH Canvas
DO
BEGIN
Pen.Color := clBlack;
Brush.Style :=
bsClear;
Pen.Width := 1;
Pen.Color := clWhite;
Arc(1,
1, Width-1, Height-1, Width, 0, 0, Height);
Arc((Width DIV
4)-1, (Height DIV 4)-1,
3*(Width DIV 4)+1, 3*(Height DIV
4)+1, 0, Height, Width, 0);
Pen.Color := clBlack;
Arc(1,
1, Width-1, Height-1, 0, Height, Width, 0);
Arc((Width DIV
4)-1, (Height DIV 4)-1,
3*(Width DIV 4)+1, 3*(Height DIV
4)+1, Width, 0, 0,
Height);
TitleBar(Active);
END;
end;


size=2>end.

Опубликовал Kest Октябрь 25 2008 17:55:51 · 0 Комментариев · 1710 Прочтений · Для печати
Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* 8 + 4=
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Загрузки
Новые загрузки
База данных: Книж...
Пример работы с р...
Добавление басса ...
Моделирование дви...
Черный круг двига...

Случайные загрузки
Фундаментальные а...
Tenis [Исходник н...
Report
PCX
TrayComp
Программирование ...
Аватары в комме...
Программирование ...
Размещение элемен...
C++ Builder 6 СПР...
Сапёр
EMS QuickExport S...
Illusion
DiskInfo
THttpScan v4.1
MP3 Архив v.2.0
Игра PackMan
Delphi7 Для профе...
CaptionButton
PDJPack

Топ загрузок
Converter AMR<-... 13141
FreeSMS v1.3.1 2550
WebReg v1.3 882
Delphi 7 Enterp... 846
Turbo Pascal fo... 765
GamesBase 3.0 636
RxLIB 291
Borland Delphi ... 287
CoolControls v3... 278
RbControls 263
Случайные статьи
Создание шаблона д...
Средства для работ...
File not found
Несколько примеров...
Приложение MS Excel
Машинно-независима...
Эта форма имет про...
Реализация IUnknown
Веб-программирован...
АМ-MSK модулятор
Операции в Прологе
Класс TIcon
Процедура Circle -...
Нынешнее положение...
Водородная энерге...
Яндекс учитывает с...
Объекты, интерфейс...
Пересылка данных
Процедура SetAllPa...
Создание базы данн...
ПРИЛОЖЕНИЕ А. О...
SDECREMENT (УМЕНЬШ...
Гипотезы - подцели
Таблицы (Table)
ХАКАЕМ АПОРТ
Статистика



Друзья сайта
Бесплатные программы
Программы, игры
Создание игр, графика, программирование