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

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

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

{ пункта (Entry) определенной секции [Section] определенного }

{ INI-файла (дополняем '.ini', если отсутствует). Возвращаем }

{ нулевую строку, если IniFile, Section или Entry не найден. }

{----------------------------------------------------------------}

var

IniFileVar: string;

IniFileObj: TIniFile;

begin

ifStrEndsWith(IniFile, '.ini') thenIniFileVar := IniFile

elseIniFileVar := IniFile + '.ini';

IniFileObj := TIniFile.Create(IniFileVar);

GetIni := IniFileObj.ReadString(Section, Entry, '');

IniFileObj.Free;

end; {GetIni}

Как исправить проблемы с вызовом помощи при одновременно стоящих Delphi 1 и Delphi 2?

Nomadicотвечает:

A: (AP): Решаются так…

В regedit убейте из секции HKLM\SOFTWARE\Microsoft\Windows\Help все, что равно «…\help».

Изменив соответствующие пути, импортируйте в реестр следующий файлик:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths\delphi32.exe]

@="C:\\DELPHI2\\BIN\\delphi32.exe

"Path"="C:\\DELPHI2\\HELP"

Защита

Борьба с SoftIce

Igor Nikolaev aKa The Spriteпишет:

Hаткнулся в инете на некий модуль StopIce, и любопытство сделало своё дело. Как долго я смеялся… :))))

Для тех, кто не в курсе: посмотрите export NmSymIsSoftIceLoaded (или что-то подобное) в nmtrans.dll.

Вот полный юнит против SOFTICE, при обнаружении отладчика перезагружает компьютер:

unitStopIce;

interface

implementation

usesWindows;

FunctionIsSoftIce95Loaded: boolean;

VarhFile: Thandle;

Begin

result := false;

hFile := CreateFileA('\\.\SICE', GENERIC_READ orGENERIC_WRITE, FILE_SHARE_READ orFILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

if(hFile <> INVALID_HANDLE_VALUE) then begin

CloseHandle(hFile);

result := TRUE;

end;

End;

FunctionIsSoftIceNTLoaded: boolean;

VarhFile: Thandle;

Begin

result := false;

hFile := CreateFileA('\\.\NTICE', GENERIC_READ orGENERIC_WRITE, FILE_SHARE_READ orFILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

if(hFile <> INVALID_HANDLE_VALUE) then begin

CloseHandle(hFile);

result := TRUE;

end;

End;

functionWinExit(flags: integer): boolean;

functionSetPrivilege(privilegeName: string; enable: boolean): boolean;

var

tpPrev, tp: TTokenPrivileges;

token: THandle;

dwRetLen: DWord;

begin

result := False;

OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES orTOKEN_QUERY, token);

tp.PrivilegeCount := 1;

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

ifenable thentp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED

elsetp.Privileges[0].Attributes := 0;

dwRetLen := 0;

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

end;

CloseHandle(token);

end;

begin

ifSetPrivilege('SeShutdownPrivilege', true) then begin

ExitWindowsEx(flags, 0);

SetPrivilege('SeShutdownPrivilege', False)

end;

end;

initialization

ifIsSoftIce95Loaded orIsSoftIceNTLoaded then begin

WinExit(EWX_SHUTDOWN orEWX_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};

functionWinHelp(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-а.

procedureTForm1.HelpSearchFor;

varS: 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-цветные изображения из файла ресурсов.

functionLoadBitmap256(hInstance: HWND; lpBitmapName: PChar): HBITMAP;

var

hPal, hRes, hResInfo: THandle;

pBitmap: PBitmapInfo;

nColorData: Integer;

pPalette: PLogPalette;

X: Integer;hPalette: THandle;

begin

hResInfo:= FindResource(hInstance, lpBitmapName, RT_BITMAP);

hRes:= LoadResource(hInstance, hResInfo);

pBitmap:= Lockresource(hRes);

nColorData:= pBitmap^.bmiHeader.biClrUsed;

hPal := GlobalAlloc(GMEM_MOVEABLE, (16 * nColorData));

{hPal := GlobalAlloc(GMEM_MOVEABLE, (SizeOf(LOGPALETTE) + (nColorData * SizeOf(PALETTEENTRY)));}

pPalette := GlobalLock(hPal);

pPalette^.palVersion := $300;

pPalette^.palNumEntries := nColorData;

forx := 0 tonColorData do begin

pPalette^.palPalentry[X].peRed := pBitmap^.bmiColors[X].rgbRed;

pPalette^.palPalentry[X].peGreen := pBitmap^.bmiColors[X].rgbGreen;

pPalette^.palPalentry[X].peBlue := pBitmap^.bmiColors[X].rgbBlue;

end;

hPalette := CreatePalette(pPalette^);

GlobalUnlock(hRes);

GlobalUnlock(hPal);

GlobalFree(hPal);

end;

end.

– Mark Lussier

Как записать содержимое окна OpenGL в 'bmp' файл?

Nomadicсоветует:

Вот что попробовал – вроде получилось:

bt := TBitmap.Create;

bt.Width := gr.Width;

bt.Height := gr.Height;

bt.Canvas.CopyRect(ClientRect, gr.Canvas, gr.ClientRect);

bt.SaveToFile('e:\bt.bmp');

bt.Free;

(gr – объект, в канве которого я рисую с помощью OpenGL)

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

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

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




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


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


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

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