……
и .def-файл примерно такого вида:
EXPORTS
RunDll
RunDllA=RunDll
RunDllW
то rundll32 становится разборчивой — под NT вызывает UNICODE-версию. Под 95, разумеется, ANSI.
Читаем Adobe Acrobat PDF файлы из нашего приложения
Igor Nikolaev aKa The Spriteсоветует:
Adobe Acrobat PDF — хорошо известный формат, который нравится многим пользователям. Давайте посмотрим, как можно заставить приложение на Delphi прочитать файл такого формата.
Совместимость: Delphi 3.x (или выше)
Итак, Вы должны быть уверены, что у вас проинсталлирован Acrobat Reader, если таковой программы нет, то её можно скачать с www.adobe.com После этого необходимо проинсталировать типовую библиотеку для Acrobat (Project→Import Type Library из меню Delphi) выберите "Acrobat Control for ActiveX (version x)". Где x — текущая версия библиотеки. Hажмите кнопку инсталяции. Теперь создайте новое приложение, поместите на форму проинсталлированный компонент TPDF, далее добавите OpenDialog, и в заключении кнопку, при на нажатии на которую будет вызываться процедура открытия файла:
procedureTForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute thenpdf1.src := OpenDialog1.FileName;
end;
в юните PdfLib_TLB вы можете найти интерфейс класса TPdf:
TPdf = class(TOleControl)
private
FIntf: _DPdf;
function GetControlInterface: _DPdf;
protected
procedureCreateControl;
procedureInitControlData; override;
public
function LoadFile( constfileName: WideString): WordBool;
proceduresetShowToolbar(On_: WordBool);
proceduregotoFirstPage;
proceduregotoLastPage;
proceduregotoNextPage;
proceduregotoPreviousPage;
proceduresetCurrentPage(n: Integer);
proceduregoForwardStack;
proceduregoBackwardStack;
proceduresetPageMode( constpageMode: WideString);
proceduresetLayoutMode( constlayoutMode: WideString);
proceduresetNamedDest( constnamedDest: WideString);
procedurePrint;
procedureprintWithDialog;
proceduresetZoom(percent: Single);
proceduresetZoomScroll(percent: Single; left: Single; top: Single);
proceduresetView( constviewMode: WideString);
proceduresetViewScroll( constviewMode: WideString; offset: Single);
proceduresetViewRect(left: Single; top: Single; width: Single; height: Single);
procedureprintPages(from: Integer; to_: Integer);
procedureprintPagesFit(from: Integer; to_: Integer; shrinkToFit: WordBool);
procedureprintAll;
procedureprintAllFit(shrinkToFit: WordBool);
proceduresetShowScrollbars(On_: WordBool);
procedureAboutBox;
property ControlInterface: _DPdf readGetControlInterface;
property DefaultInterface: _DPdf readGetControlInterface;
published
property TabStop;
property Align;
property DragCursor;
property DragMode;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnStartDrag;
propertysrc: WideString index1 readGetWideStringProp writeSetWideStringProp storedFalse;
end;
в заключение можно добавить следующее: Если Вы не уверены, что у конечного пользователя Вашей программы установлен Acrobat Reader, то необходимо, чтобы приложение проверяло эту ситуацию, прежде чем будут производится различные манипуляции с компонентой TPdf. И второе, если файл PDF имеет различные связи, например с AVI файлами, то они не будут работать из Delphi.
Надеюсь этот пример будет Вам полезен.
Какие есть рекомендации по использованию Apollo SDE?
Nomadicсоветует:
1. При работе с Аполло (если у тебя базы используются и досовскими задачами) — то в dbgrid'e поставь значение Font→Charset = OEM_Charset. И не забудь сразу после открытия базы вызывать метод Apollo1.SetTranslate(True). Если твое приложение будет работать с базами одновременно с досовскими, то советую перед открытием баз вызывать метод Apollo1.SysProp(SDE_SP_SETOBUFFER, Pointer(0)); для отключения буферизации операций чтения/записи в базы.
2. Если ты пишешь приложение, которое будет использовать базы только в кодировке Windows (CP1251), то тебе достаточно будет указать в dbgrid'e значение Font→Charset = Russian_Charset. Если базы в 866 кодиpовке, то:
Читать дальше