Форум веб-мастеров  /  Статьи веб-мастера  /  WHOIS-сервис  /  Услуги веб-мастера  /  RSS 
Разделы сайта






Полезные ссылки
Рекламодатель! Не знаешь как и где купить 100 клиентов за 100 рублей?
Ответ здесь!

wm-help.net -> Статьи веб-мастера -> Delphi -> Делаем окна системы прозрачными

Делаем окна системы прозрачными

Автор: Беляев Александр
Сайт Автора: wm-help.net
E-mail Автора: admin@wm-help.net
Дата написания: 25.01.2005

В этой статья я хотелбы рассказать как можно изменять внешний вид системы, и делать его более привлекательным для пользователя. Здесь я расскажу как можно с помощью Delphi написать программу меняющую прозрачность окон в системе. В программе используются только стандартные компоненты для Delphi 7, одним словом Вам ничего не придется качать из интернета. И так начнем.

Для начала создадим новый проект на форму положим:

  • один ListBox
  • шесть кнопок
  • один TrackBar
  • три CheckBoxa 
  • один Edit с итенем AppName

Button1.Caption - добавить, Button2.Caption - Удалить, Button3.Caption - Изменить, Button4.Caption - Поумолчанию, Button5.Caption - OK, Button6.Caption - Применить.

CheckBox1.Caption - Как Тип, CheckBox2.Caption - Как заголовок, CheckBox3.Caption - Применять автоматически 

Теперь нам нужно сделать так, чтобы пользователь мог добавлять свои окн к списку уже имеющихся для этого в обработчике события Button1Click пишем следующее Panel1.Show; (при условии что AppName и Button5 находятся на невидимой Panel1). После Ввода данных, нам их нужно обработать, для этого в обработчике Button5Click пишем:

if ((AppName.Text<>'') and (AppName.Text<>'Windows Name')) then
ListBox1.Items.Add(AppName.Text);
Panel1.Hide;

Теперь, когда введенные данные добавленны нужно сделать так, чтобы пользователь мог их редактировать для этого у нас на форме зарезервированны еще две кнопки

procedure TForm1.Button3Click(Sender: TObject); //Изменит выбранный заголовок
begin
if ListBox1.ItemIndex<0 then
begin
Showmessage('Выберите то, что хотите изменить');
exit;
end;
AppName.Text:=ListBox1.Items.Strings[ListBox1.ItemIndex];
ListBox1.DeleteSelected;
Panel1.Show;
end; 

procedure TForm1.Button2Click(Sender: TObject); //Удалить выбранный заголовок
begin
if ListBox1.ItemIndex<0 then
begin
Showmessage('Выберите то, что хотите удалить');
exit;
end;
ListBox1.DeleteSelected;
end;

Все. На этом с редактированием списка окон закончили, теперь нам нужно сделать так чтобы при выборе окна мы могли изменять его прозрачность. Для этого в обработчике Button6Click пишем следующее

 var
old: longint;
hwin:HWND;
begin
if ListBox1.ItemIndex<0 then
begin
Showmessage('Выберите окно, прозрачность которого вы хотите изменить');
exit;
end;
if CheckBox1.Checked then
begin
hwin:=FindWindow(pchar(ListBox1.Items.Strings[ListBox1.ItemIndex]),nil);
if hwin<>0 then
begin
old:=GetWindowLongA(hwin,2) ;
SetWindowLongA(hwin,GWL_EXSTYLE,old or $80000);
SetLayeredWindowAttributes(hwin, 0, TrackBar1.Position, $2);
end;

 Ну вот почти и все осталось сделать так, чтобы при установленной галочке "Применять автоматически" окно вовремя перемещения ползунка меняло свою прозрачность

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if CheckBox3.Checked then Button6.Click;
end;

Скачать

Вот и вся программа, если кто че непонял пишите на gidsoft@gorodok.net постараюсь ответить.

Источник: http://wm-help.net/my-articles/article/transpwindows.htmPage copy protected against web site content infringement by Copyscape
Перепечатка данной статьи разрешается только при письменном(e-mail) разрешении автора (Беляева Александра Дмитриевича) и при полном сохранении исходного вида статьи (ссылки, авторские реферальные ссылки, e-mail'ы, форматирование текста, ...), а так же указания точных данных об авторстве (данные автора + прямая [без редиректа и не закрытая от индексации] ссылка на статью).
В случае не выполнения данных правил, возможно применение «особых» мер, к нарушителям.

Другие статьи из раздела "Delphi"
Все о IE для Delphi'стов
   Делаем окна системы прозрачными
[ Вверх ]

Rambler's Top100

Другие наши проекты:
Бодибилдинг | Строим Домик | Доменные имена |
"Делаем окна системы прозрачными"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2017.
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.025