Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

End;


function WinExit(flags: integer): boolean;

 function SetPrivilege(privilegeName: string; enable: boolean): boolean;

 var

  tpPrev, tp: TTokenPrivileges;

  token: THandle;

  dwRetLen: DWord;

 begin

  result := False;

  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, token);

  tp.PrivilegeCount := 1;

  if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then begin

   if enable then tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED

   else tp.Privileges[0].Attributes := 0;

   dwRetLen := 0;

   result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);

  end;

  CloseHandle(token);

 end;


begin

 if SetPrivilege('SeShutdownPrivilege', true) then begin

  ExitWindowsEx(flags, 0);

  SetPrivilege('SeShutdownPrivilege', False)

 end;

end;


initialization

 if IsSoftIce95Loaded or IsSoftIceNTLoaded then begin

  WinExit(EWX_SHUTDOWN or EWX_FORCE);

  Halt;

 end;

end. 

Файлы помощи 

Не могу открыть файл помощи…

Я создал файл помощи для моего приложения и назвал его KidsHelp.hlp

При запуске в системе, в которой файл был создан, программа находит его без проблем. Данная машина имеет конфигурацию Pentium 120 с установленной Windows 95. При запуске программы на второй системе, с Windows 3.1, при выборе пункта меню «Using Help» программа не может открыть файл. Я создал файл помощи с помощью программы «HC31.exe». В самом проекте я не указывал полный путь к файлу помощи, я указал только его имя.

1. Для решения этой проблемы я делаю две вещи:

2. Всегда располагаю файл помощи в том же каталоге, что и приложение

Назначаю файл помощи в обработчике события главной формы OnCreate таким образом:

Application.HelpFile := ChangeFileExt(Application.ExeName, '.HLP');

– Neil Rubenking 

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

Nomadic советует:

1.

unit {$IFDEF WIN32} Windows {$ELSE} WinProcs {$ENDIF};

function WinHelp(Wnd: HWnd; HelpFile: PChar; Command: Word; Data: LongInt): Bool;

Здесь цитата из WinAPI Help:

HELP_CONTEXTPOPUP

An unsigned long integer containing the context number for a topic. Displays in a pop-up window a particular Help topic identified by a context number that has been defined in the [MAP] section of the .HPJ file.

2. То же самое, что делает макрос «Search» для WinHelp-а.

procedure TForm1.HelpSearchFor;

var S: String;

begin

 S := '';

 Application.HelpFile := 'C:\MYAPPPATH\MYHELP.HLP';

 Application.HelpCommand(HELP_PARTIALKEY, LongInt(@S));

end; 

Как заставить Help-файлы нормально отображать русский текст под Windows 3.x?

Nomadic советует:

Удалось вылечить дописыванием в файл проекта в графу Options строчки FORCEFONT=Arial Cyr, причем HC31 ругается что нет такого шрифта, но зато хелп потом нормально показывается практически под любой руссифицированной виндой.

Проверял с [Win31+CyrWin], [Win311Rus], [Win95PE], [Win95Rus].

На NT не проверял.

Причем шрифты в тексте ноомально переключаются и будут не только Arial.

Вот кусок который надо вставить в HPJ файл перед компиляцией –

[OPTIONS]

FORCEFONT=Arial Cyr

Графика 

256-цветное изображение из res-файла

Вот функция, правильно читающая 256-цветные изображения из файла ресурсов.

function LoadBitmap256(hInstance: HWND; lpBitmapName: PChar): HBITMAP;

var

 hPal, hRes, hResInfo: THandle;

 pBitmap: PBitmapInfo;

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT