[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Pascal - Delphi /

Графика окон и их программирование

В этой статье описывается создание нестандартных окон.
Для этого нам понадобится Delphi (желательно Delphi 7 или RAD Studio).
Все графические объекты созданы в Photoshop 11.

Для начала уберём стандартный заголовок у окна:
Form1>Border Style>bsNone
и
Form1>Position>poScreenCenter

1.Делаем графический заголовок.
В виде заголовка у нас будет TImage.
Поставьте его на форму и присвойте ему имя Title (Image1>Name>Title).
Загрузите в него изображение (можно самое простое нарисовать в пеинте, но если хочется чего то более стильного делаем в фотошопе).
Установите в свойстве Align значение alTop.
И Height (Высоту) желательно 25, или как захотите только не слишком большую.
Ставим свойство Stretch: True
Теперь программируем заголовок:



procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$F012,0);
end;

Теперь окно можно (таскать) за наш заголовок.

2. Делаем рамку
Кидаем на форму три компонента TImage и присваиваем им имена:
Image1>Name>Left
Image2>Name>Right
Image3>Name>Bottom

Имагу Left ставим свойство Align>alLeft и Cursor: crSizeWE
Имагу Right ставим свойство Align>alRight и Cursor: crSizeWE
Имагу Bottom ставим свойство Align>alBottom и Cursor: crSizeNS
И у всех них свойство Stretch: True

Делаем ширину у имагов Left и Right 5,
а высоту у Bottom тоже 5.
Загружаем в них изображения.
Программируем:


procedure TForm1.BottomMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$F006,0);
end;

procedure TForm1.LeftMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$F001,0);
end;

procedure TForm1.RightMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$F002,0);
end;

Теперь дело остаётся за малым: кнопка закрыть, свернуть и цвет фона окна.
Поставьте на заголовок два компонента TImage и загрузите в них изображения. Меняем их названия:
Image1>Name>Close1
Image1>Name>Minimize
Программируем:


procedure TForm1.Close1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.MinimizeClick(Sender: TObject);
begin
Application.Minimize;
end;

Программируем форму:


procedure btnPos;
begin
Form1.Close1.Top := 0;
Form1.Close1.Left := Form1.Width-Form1.Close1.Width;
Form1.Minimize.Top := 0;
Form1.Minimize.Left := Form1.Width-Form1.Close1.Width-Form1.Minimize.Width;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
btnPos;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Form1.DoubleBuffered := True;
Form1.AlphaBlend := true; // Разрешаем прозрачность
Form1.AlphaBlendValue := 230; // Устанавливаем прозрачность
end;

Можно ещё добавить надпись на заголовке.

Всё сделано. Вскоре будет продолжение.

Скачать исходник




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Pascal - Delphi /

Работа со шрифтами на Win API
06-06-2010   

Сегодня поговорим о шрифтах, и о том, каким образом работать с ними на Win API. Нам потребуется переменная типа HFONT. Изменить стиль шрифта можно у любого компонента, я покажу это на примере кнопки... подробнее

Кол. просмотров: общее - 4656 сегодня - 0

Работа с таймером на Win API
06-06-2010   

Таймер - вещь в хозяйстве очень полезная. Если некое действие нужно повторять с определенной периодичностью, то таймер, это как раз то, что нужно... подробнее

Кол. просмотров: общее - 4687 сегодня - 0

Работа с мультимедийным таймером на Win API
06-06-2010   

Мы уже знакомы с системным таймером, сегодня познакомимся с мультимедийным, основное отличие которого, более высокая скорость (точность) работы... подробнее

Кол. просмотров: общее - 4832 сегодня - 0

Создание CheckBoxов средствами Win API
06-06-2010   

Сегодня наша программа научится работать с CheckBoxами. CheckBox можно представить как флаг, который можно установить или сбросить, и в зависимости от его состояния выполнять определенные действия... подробнее

Кол. просмотров: общее - 5071 сегодня - 0

Создание группы RadioButton средствами Win API
06-06-2010   

В прошлый раз мы сделали несколько радио-кнопок, которые автоматически объединялись в одну группу. Сейчас рассмотрим, как создавать несколько независимых групп радио-кнопок... подробнее

Кол. просмотров: общее - 4714 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects