Сергей Парижский - Delphi. Учимся на примерах

Тут можно читать онлайн Сергей Парижский - Delphi. Учимся на примерах - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство МК-Пресс, год 2005. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Delphi. Учимся на примерах
  • Автор:
  • Жанр:
  • Издательство:
    МК-Пресс
  • Год:
    2005
  • Город:
    Киев
  • ISBN:
    ISBN 966-8806-02-6
  • Рейтинг:
    4/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Сергей Парижский - Delphi. Учимся на примерах краткое содержание

Delphi. Учимся на примерах - описание и краткое содержание, автор Сергей Парижский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Данная книга — продолжение предыдущей книги автора, "Delphi. Только практика". Также как и в "Delphi. Только практика", в данном издании подробно рассмотрены программы для сетей, различные шуточные программы, простые игрушки, некоторые полезные приложения, разработка приложений в стиле Windows XP. В частности, здесь можно найти такие примеры как бесплатная отправка SMS, FTP-клиент, простое шифрование, CGI-сценарии и многое другое. Описаны методы работы с системным реестром Windows и INI-файлами, а также некоторые важные аспекты программирования на системном уровне с применением функций Windows API. Для облегчения понимания программ каждый пример содержит комментарии сложных строк кода.

Книга ориентирована как на тех, кто уже имеет опыт создания приложений в Delphi, так и на начинающих программистов. Для начинающих пользователей Delphi в конце книги добавлено приложение с описанием синтаксиса языка программирования Object Pascal.

Delphi. Учимся на примерах - читать онлайн бесплатно полную версию (весь текст целиком)

Delphi. Учимся на примерах - читать книгу онлайн бесплатно, автор Сергей Парижский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

procedure TForm1.passKeyPress(Sender: TObject; var Key:Char);

begin

if key = #13 then// если нажата клавиша

check;//вызываем процедуру check

end;

#13 —это код клавиши .

Коды символов и клавиш клавиатуры перечислены в приложении А.

Для первого таймера событие OnTimer будет содержать только вызов процедуры logon:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

logon;

end;

Для второго таймера (у которого свойство Interval имеет значение 1000) добавьте в обработчик события OnTimer следующий код:

procedure TForm1.Timer2Timer(Sender: TObject);

begin

h1:= FindWindow('Progman',nil);//поиск Рабочего стола

ShowWindow(h1, sw_hide); //прячем Рабочий стол

CloseWindow(h1);//сворачиваем окно Рабочего стола

pass. SetFocus;//переводим курсор в текстовое поле

end;

Сворачивание окна Рабочего стола приводит к закрытию системного меню Пуск, если оно открыто. В конечном итоге пользователь не имеет доступа к Рабочему столу, к панели задач, к меню Пуск и диспетчеру задач, однако, несмотря на то, что наша программа не имеет заголовка, ее можно закрыть с помощью комбинации клавиш . Для того чтобы отключить эту возможность, создайте обработчик события главной формы OnCloseQuery и добавьте в него следующий код:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

CanClose:= False;

end;

Единственное, что осталось сделать, — обеспечить программе автозагрузку, указав путь к ней в системном реестре. Для работы с реестром необходимо добавить в раздел uses ссылку на модуль Registry, а за тем создать следующий обработчик события формы OnCreate:

procedure TForm1.FormCreate(Sender; TObject);

var

Reg: TRegistry;//переменная для работы с реестром

begin

Reg:= TRegistry.Create;

Reg.RootKey:= HKEY_CURRENT_USER; //только для текущего пользователя

Reg. OpenKey(' Software\Microsoft\Windows\CurrentVersion\Run', true); //открываем раздел автозагрузки в реестре

//и записываем название и полный путь к нашей программе

Reg.WriteString('Logon', Application.ExeName);

Reg.CloseKey;//закрываем реестр

Reg.Free;//освобождаем память

end;

Теперь наша программа будет загружаться для текущего пользователя вместе с системой и требовать ввод пароля. Программа в действии показана на рис. 10.2.

Рис. 10.2. Программа Вход в систему в действии

Полный исходный код модуля

Полный исходный код модуля программы Вход в систему представлен в листинге 10.1.

Листинг 10.1. Модуль программы Вход в систему

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Registry;

type TForm1 = class(TForm)

pass: TEdit;

Label1: TLabel;

Timer1: TTimer;

Button1: TButton;

Timer2: TTimer;

procedure Button1Click(Sender: TObject);

procedure passKeyPress(Sender: TObject; var Key: Char);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

private

{ Private declarations }

h1: HWND; //переменная, содержащая идентификатор окна

procedure logon(); //блокирует все, пока пароль не будет введен верно

procedure check(); //проверка корректности пароля

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.check();

begin

if pass.Text = 'password' then //если пароль верный

begin

//узнаем идентификатор Рабочего стола

h1:= FindWindow('Progman',nil);

//разрешаем работу с Рабочим столом

ShowWindow(h1, sw_show);

// узнаем идентификатор панели задач

h1:= FindWindow('Shell_traywnd',nil);

//разрешаем работу с панелью задач

ShowWindow(h1, sw_show);

halt; //закрываем программу

end // иначе, выводим сообщение о неверном пароле

else ShowMessage('Wrong password!');

end;

procedure TForm1.logon();

begin

//узнаем идентификатор Рабочего стола

h1:= FindWindow('Progman', nil);

ShowWindow(h1, sw_hide); //прячем Рабочий стол

// находим панель задач

h1:= FindWindow('Shell_traywnd', nil);

ShowWindow(h1, sw_hide); //прячем панель задач

{проверяем, не запущен ли диспетчер задач}

h1:= FindWindow(nil, 'Диспетчер задачWindows');

{если да, то закрываем окно диспетчера задач}

if (h1 <> 0) then PostMessage(h1, WM_QUIT, 1, 0);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

logon;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

check;

end;

procedure TForm1.passKeyPress(Sender: TObject; var Key:Char);

begin

if key = #13 then // если нажата клавиша

check; //вызываем процедуру check

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

CanClose:= False;

end;

procedure TForm1.FormCreate(Sender; TObject);

var

Reg: TRegistry;//переменная для работы с реестром

begin

Reg:= TRegistry.Create;

Reg.RootKey:= HKEY_CURRENT_USER; //только для текущего пользователя

Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true); //открываем раздел автозагрузки в реестре

//и записываем название и полный путь к нашей программе

Reg.WriteString('Logon', Application.ExeName);

Reg.CloseKey; //закрываем реестр

Reg.Free; //освобождаем память

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

h1:= FindWindow('Progman', nil); //поиск Рабочего стола

ShowWindow(h1, sw_hide); //прячем Рабочий стол

CloseWindow(h1); //сворачиваем окно Рабочего стола

pass.SetFocus; //переводим курсор в текстовое поле

end;

end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter 10.

Глава 11

Информация о памяти

Постановка задачи

Разработать программу, которая отображает информацию о физической, страничной и виртуальной памяти.

Разработка формы

Создайте новый проект Delphi и присвойте свойству Caption формы значение Memory Info.

Для вывода различной информации о памяти мы будем использовать компонент Label категории Standard. Разместите на форме один над другим семь таких компонентов, присвоив свойству Left каждого из них значение 230, а свойству Caption — значение 0.

Слева от этого столбца меток разместите в столбец еще семь компонентов Label, которые будут пояснять числа, отображаемые предыдущими семью метками. Присвойте их свойству Caption следующие значения (сверху вниз): Загруженность памяти:, Всего физической:, Свободно физической:, Всего страничной:. Свободно страничной:, Всего swap: И Свободно swap:.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Сергей Парижский читать все книги автора по порядку

Сергей Парижский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Delphi. Учимся на примерах отзывы


Отзывы читателей о книге Delphi. Учимся на примерах, автор: Сергей Парижский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x