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


Авторские права

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

Здесь можно скачать бесплатно "Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
Рейтинг:
Название:
Советы по Delphi. Версия 1.4.3 от 1.1.2001
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

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

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "Советы по Delphi. Версия 1.4.3 от 1.1.2001" читать бесплатно онлайн.



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






 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') then CheckSum := 10

  else Val(CheckDigit, CheckSum, Err);

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

  Cnt := 1;

  for i := 1 to 12 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 MOD 11 = 0) then IsISBN := True

  else IsISBN := False;

 end

 else IsISBN := False;

end;

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

API

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

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

Nomadic советует:

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

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

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

Delphi 1

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

Procedure settime(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;

Procedure setdate(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 не позволит программе завершить свою работу.

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

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

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

begin

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

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

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

end;

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

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

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

BOOL Ctrl_Handler(DWORD Ctrl) {

 if ((Ctrl == CTRL_SHUTDOWN_EVENT) || (Ctrl == CTRL_LOGOFF_EVENT)) {

  // Вау! Юзер обламывает!

 } else {

  // Тут что-от другое можно творить. А можно и не творить :-)

 }

 return TRUE;

}


function Ctrl_Handler(Ctrl: Longint): LongBool;

begin

 if Ctrl in [CTRL_SHUTDOWN_EVENT, CTRL_LOGOFF_EVENT] then begin

// Вау, вау

 end

 else begin

// Am I creator?

 end;

 Result := true;

end;

А где-то в программе:

SetConsoleCtrlHandler(Ctrl_Handler, TRUE);

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

Короче, смотри описание SetConsoleCtrlHandler — там всё есть.

Как корректно перехватить сигнал выгрузки операционной системы, если в моей программе нет окна?

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

Используй GetMessage(), в качестве HWND окна пиши NULL (на Паскале — 0). Если в очереди сообщений следующее — WM_QUIT, то эта функция фозвращает FALSE. Если ты пишешь программу для Win32, то запихни это в отдельный поток, организующий выход из программы.

Постепенное умирание

The_Sprite пишет:

Вопрос: А как реализовать в одном компоненте такие функции как выключение компьютера, перезагрузка, завершение сеанса работы пользователя, Eject CD, выключение питания монитора и т.д.? Ответ: предлагаем посмотреть следующий пример…

Совместимость: все версии Delphi

Пример:

procedure TForm1.Button1Click(Sender: TObject);

begin

 PowerControl1.Action:=actCDEject;// Или...

 actLogOFF, actShutDown...

 PowerControl1.Execute;

end

Component Code:

unit

 PowerControl;

interface


uses WinTypes, WinProcs, Messages, SysUtils, Classes, Controls,Forms, Graphics,MMSystem;

type

TAction =(actLogOFF,actShutDown,actReBoot,actForce,actPowerOFF,

 actForceIfHung,actMonitorOFF,actMonitorON,actCDEject,actCDUnEject);


type TPowerControl = class(TComponent)

private

 FAction : TAction;

 procedure SetAction(Value : TAction); protected

public

 function Execute :Boolean;

published

 property Action :TAction read FAction write SetAction;

end;


procedure Register;


implementation


procedure Register;

begin

 RegisterComponents('K2',[TPowerControl]);

end;


procedure TPowerControl.SetAction(Value : TAction);

begin

 FAction := Value;

end;


function TPowerControl.Execute : Boolean;

begin

 with (Owner as TForm) do case FAction of

  actLogOff: ExitWindowsEx(EWX_LOGOFF, 1);

  actShutDown: ExitWindowsEx(EWX_SHUTDOWN, 1);

  actReBoot:ExitWindowsEx(EWX_REBOOT, 1);

  actForce:ExitWindowsEx(EWX_FORCE, 1);

  actPowerOff:ExitWindowsEx(EWX_POWEROFF, 1);

  actForceIfHung:ExitWindowsEx(EWX_FORCEIFHUNG, 1);

  actMonitorOFF:SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

  actMonitorON: SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

  actCDEject: mciSendstring('SET CDAUDIO DOOR OPEN WAIT', nil, 0, Handle);

  actCDUnEject: mciSendstring('SET CDAUDIO DOOR CLOSED WAIT', nil, 0, Handle);

 end; {Case}

 Result := True;

end;


end.

Разное

Как не допустить запуск второй копии программы VIII

Игорь Пролис рекомендует следующий код:

{*******************************************************}

{                                                       }

{                     HTMLCoolEdit                      }

{                                                       }

{           Copyright (c) 1999-2000 PROFOX              }

{                                                       }


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

Книги похожие на "Советы по Delphi. Версия 1.4.3 от 1.1.2001" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Валентин Озеров

Валентин Озеров - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

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

Отзывы читателей о книге "Советы по Delphi. Версия 1.4.3 от 1.1.2001", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.