Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Вниз

Вставка документа 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
7-4640
vitnt2000
2002-09-30 07:36
2002.12.02
Как поменять скорость COM порта?


1-4461
F1
2002-11-20 13:48
2002.12.02
Эксперимент с TreeView


3-4239
delta
2002-11-14 14:31
2002.12.02
Вложений SQL запрос


4-4681
Akni
2002-10-22 00:19
2002.12.02
WndProc, WindowProc


3-4223
Вопросник
2002-11-13 13:42
2002.12.02
Обращение к БД через Интербэйс. Тормозит!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский