Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Название:Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание
…начиная с 1001. Смотрите другие файлы…
Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
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.
Надеюсь этот пример будет Вам полезен.
Vista Software Apollo
Какие есть рекомендации по использованию 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овке, то:
1. Использование TTable + TApollo:
=== Cut ====
TTable.Open;
TApollo.SetTranslate(True);
TTable.Refresh;
=== Cut ====
2. Использование TApTable:
=== Cut ====
TApTable.Open;
TApTable.SetTranslate(True);
TApTable.Refresh;
=== Cut ====
И вместо закорючек будут родные русские буквы. Правда, только при выполнении программы. В дизайнере на этапе проектирования псевдографика так и останется.
Microsoft Excel
Не работает передача данных по OLE в русский Excel
Nomadicотвечает:
A: (SM): Дело в том что в VCL твои команды OLE2 передаются Excel'у в русском контексте (не знаю, как это правильно назвать). Для исправления необходимо найти в файле OLEAUTO.pas в функции GetIDsOfNames строчку
ifDispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount, LOCALE_SYSTEM_DEFAULT, DispIDs) <> 0 then
и заменить ее на
ifDispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount, ((LANG_ENGLISH+SUBLANG_DEFAULT*1024)+SORT_DEFAULT* 65536), DispIDs) <> 0 then
После этого у меня Excel стал понимать нормальные английские команды :)). Необходимая комбинация для установки английского языка взята из C-шных хедеров.
Microsoft Word
Как отследить открытие и закрытие документов в приложении Microsoft Word?
Nomadicсоветует:
В копилку. Исходный код, FAQ — желающие могут взять с Internet сами (информация взята с http://www.softmosis.ca, проверено — работает).
…
public
{ Public declarations }
FWordApp: _Application;
FWordDoc: _Document;
FWordSink: TWordConnection;
…
procedureStartWordConnection(WordApp: _Application; WordDoc: _Document; varWordSink: TWordConnection);
var
PointContainer: IConnectionPointContainer;
Point: IConnectionPoint;
begin
try
// TWordConnection is the COM object which receives the
// notifications from Word. Make sure to free WordSink when
// you are done with it.
WordSink := TWordConnection.Create;
WordSink.WordApp := WordApp;
WordSink.WordDoc := WordDoc;
// Sink with a Word application
OleCheck(WordApp.QueryInterface(IConnectionPointContainer, PointContainer));
ifAssigned(PointContainer) then begin
OleCheck(PointContainer.FindConnectionPoint(ApplicationEvents, Point));
ifAssigned(Point) thenPoint.Advise((WordSink asIUnknown), WordSink.AppCookie);
end;
// Sink with a Word document advise
OleCheck(WordDoc.QueryInterface(IConnectionPointContainer, PointContainer));
ifAssigned(PointContainer) then begin
OleCheck(PointContainer.FindConnectionPoint(DocumentEvents, Point));
ifAssigned(Point) thenPoint.Advise((WordSink asIUnknown), WordSink.DocCookie);
end;
exceptonE: Exception do
ShowMessage(E.Message);
end;
end;
procedureTmainForm.btnStartClick(Sender: TObject);
begin
FWordApp := CoApplication_.Create;
FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);
FWordApp.Visible := True;StartWordConnection(FWordApp, FWordDoc, FWordSink);
end;
procedureTmainForm.btnExitClick(Sender: TObject);
begin
FWordApp := CoApplication_.Create;
FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);
FWordApp.Visible := True;
StartWordConnection(FWordApp, FWordDoc, FWordSink);
end;
proceduretmainform.btnexitclick(sender: tobject);
begin
FWordApp.Quit(EmptyParam, EmptyParam, EmptyParam);
end;
unitConnectionObject;
interface
usesWord_TLB, dialogs;
typeTWordConnection = class(TObject, IUnknown, IDispatch)
protected
{IUnknown}
functionQueryInterface( constIID: TGUID; outObj): HResult; stdcall;
Интервал:
Закладка: