Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Вот пример этой методики, изложенной на языке функций Delphi:

functionIsISBN(ISBN: String): Boolean;

var

Number, CheckDigit: String;

CheckValue, CheckSum, Err: Integer;

i, Cnt: Word;

begin

{Получаем контрольную цифру}

CheckDigit := Copy(ISBN, Length(ISBN), 1);

{Получаем остальную часть, ISBN минус контрольная цифра и дефис}

Number := Copy(ISBN, 1, Length(ISBN) - 2);

{Длина разницы ISBN должны быть 11 и контрольная цифра между 0 и 9, или X}

if(Length(Number) = 11) and(Pos(CheckDigit, '0123456789X') > 0) then begin

{Получаем числовое значение контрольной цифры}

if(CheckDigit = 'X') thenCheckSum := 10

elseVal(CheckDigit, CheckSum, Err);

{Извлекаем в цикле все цифры из кода ISBN, применяя алгоритм декодирования}

Cnt := 1;

fori := 1 to12 do begin

{Действуем, если только текущий символ находится между "0" и "9", исключая дефисы}

if(Pos(Number[i], '0123456789') > 0) then begin

Val(Number[i], CheckValue, Err);

{Алгоритм для каждого символа кода ISBN, Cnt - n-й обрабатываемый символ}

CheckSum := CheckSum + CheckValue * (11 - Cnt);

Inc(Cnt);

end;

end;

{Проверяем делимость без остатка полученного значения на 11}

if(CheckSum MOD11 = 0) thenIsISBN := True

elseIsISBN := False;

end

elseIsISBN := False;

end;

Это примитивный пример, сильно упрощенный для лучшего понимания алгоритма декодирования кода ISBN. В реальной жизни (приложении) имеется немало мелочей, которые необходимо учесть для нормальной работы. Для примера, описанная выше функция требует от кандидата ISBN строку паскалевского типа с дефисами, разделяющими четыре части кода. В качестве дополнительной функциональности можно проверять кандидата ISBNs на наличие дефисов. Другой полезной вещью могла бы быть проверка на наличие трех дефисов на нужных позициях, а не простая проверка на наличие необходимых одиннадцати символов-цифр.

API

Переменные среды

Как раскрыть строки с подстановками вида '%SystemRoot%\IOSUBSYS\'?

Nomadicсоветует:

Используй вызов

ExpandEnvironmentStrings(LPCTSTR lpSrc, LPTSTR lpDst, DWORD nSize);

Изменение системного времени из Delphi II

Delphi 1

Можно. Попробуйте следующий код:

Proceduresettime(hour, min, sec, hundreths : byte); assembler;

asm

mov ch, hour

mov cl, min

mov dh, sec

mov dl, hundreths

mov ah, $2d

int $21

end;

Proceduresetdate(year : word; month, day : byte); assembler;

asm

mov cx, year

mov dh, month

mov dl, day

mov ah, $2b

int $21

end;

Завершение работы Windows

Определение завершения работы Windows

НОМЕР ДОКУМЕНТА: TI3133

ПРОДУКТ: Delphi

Версия: 1.0

ОС: Windows

Дата: 1 октября, 1996

Тема: Определение завершения работы Windows

Существует ли возможность определения завершения работы Windows для нормального завершения работы работающего приложения Delphi?

Самым простым решением является создание обработчика события главной формы OnCloseQuery. Данное событие возникает как результат сообщения WM_QUERYENDSESSION, которое посылается всем работающим приложениям Windows в момент инициализации процесса окончания работы Windows. Логическая переменная CanClose, передаваемая обработчику как var-параметр, может позволить программе (и Windows) завершить свою работу, если имеет значение True, значение же False не позволит программе завершить свою работу.

Следующий код демонстрирует как можно воспользоваться данным событием.

Демонстрационный код

procedureTForm1.FormCloseQuery(Sender: TObject; varCanClose: Boolean);

begin

{Спрашиваем пользователя, если инициировано завершение работы.}

ifMessageDlg('Вы уверены?', mtConfirmation, mbYesNoCancel, 0) = mrYes thenCanClose := true {Разрешаем завершение работы.}

elseCanClose := false; {Не разрешаем завершение работы.}

end;

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

Nomadicрекомендует следующий код:

Все процессы получают сигналы CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT и CTRL_SHUTDOWN_EVENT. А делается это (грубо говоря :) так:

BOOL Ctrl_Handler(DWORD Ctrl) {

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

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x