Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

Вставка документа Word в приложение через Clipboard   Найти похожие ветки 

 
Stocker!   (2002-11-18 12:23) [0]

Дано TImage, задача вставить документ Word на TImage через Clipboard (например таблицу). Вопросы:
1. Что за тип данных передается
2. Как их обработать, чтобы положить на TImage (хочу получить аналог ACad"a что рисуется рамочка вокруг объекта и при двойном нажатии вызывается Word для редактирования)
Заранее благодарен за ответы.


 
Stocker!   (2002-11-19 07:43) [1]

Никто не пробовал, не работал с этим?


 
Крот ©   (2002-11-19 08:11) [2]

Если я правильно понял задачу, Вам нужно разбираться в технологии OLE2. Боюсь, в двух словах Вам этого на форуме никто не объяснит.


 
Крот ©   (2002-11-19 08:41) [3]

Простите, погорячился, есть ведь TOleContainer


 
KA_   (2002-11-19 08:42) [4]

Ну это сложно сделать с помощью TImage"а. Зато есть такой прекрасный компонент - TOLEContainer. Вот с ним что-то подобное сделать можно.


 
Севостьянов Игорь ©   (2002-11-19 14:32) [5]

Например вот так (хотя не идеальное решение, но на скорую руку...)

uses
Windows, SysUtils, Forms, StdCtrls, Classes, Controls,
OleServer, ComObj, ExtCtrls, jpeg, FileCtrl;
....

procedure InsertImageToDoc(DocFile: AnsiString; Image: TImage);
const
ImageTmpFN: string = "img.tmp";
var
wdApp: Variant;
ImageFile: string;
begin
wdApp := CreateOLEObject("Word.Application");
try
wdApp.Visible := True;
wdApp.Documents.Add;
ImageFile := ExtractFilePath(DocFile)+ImageTmpFN;
Image.Picture.SaveToFile(ImageFile);
wdApp.Selection.InlineShapes.AddPicture(FileName := ImageFile, LinkToFile := False, SaveWithDocument := True);
finally
DeleteFile(ImageFile);
wdApp.ActiveDocument.SaveAs(DocFile);
wdApp.Documents.Close;
wdApp.Quit;
wdApp := UnAssigned;
end;
end;

procedure TfrmMain.btnInsertImageClick(Sender: TObject); //btnInsertImage: TButton;
const
DocDir: string = "Docs\";
FName: string = "NewDoc.doc";
begin
DocDir := ExtractFilePath(Application.ExeName)+DocDir;
ForceDirectories(DocDir);
InsertImageToDoc(DocDir+FName, Image1); // Image1: TImage;
end;


 
Севостьянов Игорь ©   (2002-11-19 14:35) [6]

Блин перепутал малость наоборот поместил картинку в Word
Н-да... для этого действительно не нужен TImage достаточно TOLEContainer


 
KA_   (2002-11-19 17:53) [7]

2 Севостьянов Игорь:
Спасибо за хороший пример :)


 
Stocker!   (2002-11-20 08:45) [8]

2 Севостьянов Игорь а в обратную сторону то как? Преобразовать всё это дело к формату чтобы на IImage поместить можно было?


 
KA_   (2002-11-20 09:43) [9]

Уважаемый Stocker!.
Очевидно, Вы не сможете хранить в TImage какой-либо объект Word, так как Вы хотите иметь возможность его активизировать. К тому же объект (например таблица) и документ Word - это несколько разные вещи. Зато вы можете показать с помощью TOLEContainer этот самый документ Word, сможете его активизировать и вставлять в него объекты из ClipBoard"а. Убедительно прошу Вас посмотреть хелп Delphi. В нем есть весьма неплохие примеры. А также на этом форуме неоднократно обсуждались подобные вопросы. Тоже с примерами.


 
Stocker!   (2002-11-21 09:40) [10]

Уважаемый KA_ благодарю за подсказку.



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-4420
AndrewVolkov
2002-11-22 22:40
2002.12.02
А как нарисовать в rxDBGrid TitleButton?


14-4634
Игорь Шевченко
2002-11-12 13:39
2002.12.02
ВАЖНО! Всем, кто получил на московской встрече Мастаков диск


1-4473
andrek
2002-11-20 15:12
2002.12.02
Встроенный ASSEMBLER


7-4650
Evolution Q
2002-09-27 15:05
2002.12.02
Помогите с отключением мыши!


1-4453
AlexNO
2002-11-20 11:53
2002.12.02
Копировать каталоги