» » » Валентин Озеров - Советы по 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. Смотрите другие файлы…






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 строчку

if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount, LOCALE_SYSTEM_DEFAULT, DispIDs) <> 0 then

и заменить ее на

if Dispatch.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;

procedure StartWordConnection(WordApp: _Application; WordDoc: _Document; var WordSink: 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));

  if Assigned(PointContainer) then begin

   OleCheck(PointContainer.FindConnectionPoint(ApplicationEvents, Point));

   if Assigned(Point) then Point.Advise((WordSink as IUnknown), WordSink.AppCookie);

  end;

  // Sink with a Word document advise

  OleCheck(WordDoc.QueryInterface(IConnectionPointContainer, PointContainer));

  if Assigned(PointContainer) then begin

   OleCheck(PointContainer.FindConnectionPoint(DocumentEvents, Point));

   if Assigned(Point) then Point.Advise((WordSink as IUnknown), WordSink.DocCookie);

  end;

 excepton E: Exception do

  ShowMessage(E.Message);

 end;

end;


procedure TmainForm.btnStartClick(Sender: TObject);

begin

 FWordApp := CoApplication_.Create;

 FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);

 FWordApp.Visible := True;StartWordConnection(FWordApp, FWordDoc, FWordSink);

end;


procedure TmainForm.btnExitClick(Sender: TObject);

begin

 FWordApp := CoApplication_.Create;

 FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);

 FWordApp.Visible := True;

 StartWordConnection(FWordApp, FWordDoc, FWordSink);

end;


procedure tmainform.btnexitclick(sender: tobject);

begin

 FWordApp.Quit(EmptyParam, EmptyParam, EmptyParam);

end;

Модуль отслеживания линков

unit ConnectionObject;

interface


uses Word_TLB, dialogs;


type TWordConnection = class(TObject, IUnknown, IDispatch)

protected

 {IUnknown}

 function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;

 function _AddRef: Integer; stdcall;

 function _Release: Integer; stdcall;

 { IDispatch }

 function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;

 function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;

 function GetTypeInfoCount(out Count: Integer): HResult; stdcall;

 function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;

public

 WordApp: _Application;

 WordDoc: _Document;

 AppCookie, DocCookie: Integer;

end;


implementation


{ IUnknown Methods }


uses windows, activex, main;


procedure LogComment(comment: string);

begin

 Form1.Memo1.Lines.Add(comment);

end;


function TWordConnection._AddRef: Integer;

begin

 Result := 2;

end;


function TWordConnection._Release: Integer;

begin

 Result := 1;

end;


function TWordConnection.QueryInterface(const IID: TGUID; out Obj): HResult;

begin

 Result := E_NOINTERFACE;

 Pointer(Obj) := nil;

 if (GetInterface(IID, Obj)) then Result := S_OK;

 if not Succeeded(Result) then

  if (IsEqualIID(IID, DocumentEvents) or IsEqualIID(IID, ApplicationEvents)) then

   if (GetInterface(IDispatch, Obj)) then Result := S_OK;

end;


{ IDispatch Methods }


function TWordConnection.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;

begin

 Result := E_NOTIMPL;

end;


function TWordConnection.GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult;

begin

 Pointer(TypeInfo) := nil;

 Result := E_NOTIMPL;

end;


function TWordConnection.GetTypeInfoCount(out Count: Integer): HResult;

begin

 Count := 0;

 Result := E_NOTIMPL;

end;


function TWordConnection.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;

begin

 //This is the entry point for Word event sinking

 Result := S_OK;

 case DispID of

 1: ; // Startup

 2: ShowMessage('quit'); // Quit

 3: ; // Document change

 4: ; // New document

 5: ; // Open document

 6: ShowMessage('close'); // Close document

 else Result := E_INVALIDARG;

 end;

end;

end

Автоматизация WORD 7

Delphi 3 

Вы можете воспользоваться любым интерфейсом, предлагаемым сервером автоматизации Word. Все реализованные интерфейсы вы можете увидеть при загрузке MSWORD8.OLB в Delphi, данный файл представляет собой библиотеку типов Word 7. Для исполнения VB в Word вы можете использовать свойство WordBasic Application. Следующий пример демонстрирует оба метода:

implementation

uses ComObj;

{$R *.DFM}


var V: OleVariant;


procedure TForm1.Button1Click(Sender: TObject);

begin

 V := CreateOleObject('Word.Application');

 V.ShowMe;

 V.WordBasic.FileNew;

 V.WordBasic.Insert('тест');

 V.Run('mymac');

 V.WordBasic.FileSave;

end;

end

ReportSmith 

Передача переменных отчета в ReportSmith III

…вы говорите можно передавать переменные? В документации только красивые схемы. Я пытаюсь передать две даты, но мне необходимо чтобы первую дату ввел пользователь, вторую я вычисляю в Delphi сам и передаю результат ReportSmith.

Вот кусор работающего у меня кода, передающий использующийся при выборе Timestamp. Я использую строковую переменную просто как способ проверить строку прежде, чем я ее добавлю в отчет. Если вы хотите, можете это убрать. Примечание: убедитесь в том, что переменная, которой вы передаете значение, написана верно. Переменные отчета Reportsmith ЧУСТВИТЕЛЬНЫ К РЕГИСТРУ.

Var S: String;

Begin

 ExportReport.InitialValues.Clear;

 S :='@SQLDate=<'''+FormatDateTime('mm/dd/yyyy hh:nn:ss',ATimeStamp)+'''>';

 ExportReport.InitialValues.Add(S);

 ExportReport.RUN;

End;

– Steve McWhirter 

SQLAnywhere 

Как правильно работать с SQLAnywhere через BDE→ODBC→SAW?

Nomadic советует: 


На 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", комментарии и мнения людей о произведении.

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