|
|
В этой статья я хотелбы рассказать как можно изменять внешний вид системы, и делать его более привлекательным для пользователя. Здесь я расскажу как можно с помощью Delphi написать программу меняющую прозрачность окон в системе. В программе используются только стандартные компоненты для Delphi 7, одним словом Вам ничего не придется качать из интернета. И так начнем.
Для начала создадим новый проект на форму положим:
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;
Вот и вся программа, если кто че непонял пишите на [email protected] постараюсь ответить.