Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Проблемка с загрузкой инфы в OLEContainer


Автор: Vorona 26.10.2004, 16:00
У меня есть адрес к файлу Word, который я хочу загрузить в OLEContainer, например,
'Data\1.doc'

в программе пишу
Код
OleContainer.CreateObjectFromFile('Data\1.doc', true);


а мне на это пишут:

Project .. raised exception class EOleSysError with message 'Неопознанная ошибка'

Что может быть ее причиной?

Автор: Fedor 26.10.2004, 19:59
Попробуй прописать полный путь...

Автор: Vorona 26.10.2004, 21:39
Morpheus
уже пробовала, ничего.... :(
даже не знаю, где искать ошибку
главное очищать Ole - выходит, а загружать файлы..

Автор: Sergey89 26.10.2004, 21:42
OleContainer1.LoadFromFile('путь к файлу');
попробуй

Автор: Полудненко Олег 26.10.2004, 22:29
Люба С этим работал Самошкин Илья. Позвони ему:321232 или напиши на мыло: [email protected]. Он точно поможет.

Автор: Vorona 26.10.2004, 23:06
Sergey89
я и это пробовала, пишет
Project .. raised exception class EOleError with message 'Invalid Stream Format'

Полудненко Олег
спасибо, я с ним свяжусь

Автор: Girder 26.10.2004, 23:20
OleContainer1.CreateLinkToFile('E:\1.doc',false);

Автор: Vorona 27.10.2004, 11:38
Girder

Тоже не выходит :(
пишет: Project .. raised exception class EOleSysError with message 'Не удается произвести привязку к источнику'
Путь точно указан верно

Автор: Girder 27.10.2004, 11:41
Люба значит... что-то с файлом не то... кинь мне его(ентот *.Doc) на мыло... посмотрю :)
У тебя Word какой стоит... и от какой версии сам файл?

Перед выдочей сообщения(что формат не распознан): 'Не удается произвести привязку к источнику' - Word обычно показывает еще минюшку... :)

Автор: Vorona 27.10.2004, 14:20
Girder

Дело в том, что с файлом вроде все нормально, если загружать его перед компилированием, то все работает

Этот файл весит 1 МБайт, точно тебе его послать?

Менюшку оно не выдает, только системную ошибку

Word у меня хр, и создан файл был там же

Видимо, проблема именно в Delphi :)

Автор: ~FoX~ 27.10.2004, 14:48
Люба
Странно........
Скорее ошибка не в делфи, а в твоей системе.

Автор: Girder 27.10.2004, 14:59
Цитата

Этот файл весит 1 МБайт, точно тебе его послать?
Если не сложно... шли... :)

Автор: Vorona 27.10.2004, 18:44
Girder
Я отправила, лови.. :)

Автор: Pakshin A. S. 27.10.2004, 18:48
:offtopic
А какая задача?

Автор: Vorona 27.10.2004, 19:25
Pakshin A. S.
В смысле? Ну, задача загрузить документ Word в OLE. :)

Автор: Pakshin A. S. 27.10.2004, 19:26
:offtopic А для чего?

Автор: Pakshin A. S. 27.10.2004, 19:44
:yasno
Нее... народ!!! Что вы все мучаетесь!!!! :stena
Рассказываю:
почитал книжку, попробовал применить САБЖ, нифига!!! :(

меня это разозлило не на шутку!!! :angry:
Задал вопрос самому себе: а что Delphi по этому поводу говорит? :qstn ;-)
Ответ нашелся почти сразу: работающее приложение сидит в пипке с Delphi\Demos\ActiveX\OLECtnrs\olemdi.dpr :rtfm
Всё работает и ещё как! :thumbs-up

:exclamation :cool
Таким образом, посмотрев на пример, можно просто его скопированть в свою прогу (медернизировав, кончено) и наслаждаться жизнью :cool ! :D
Добавлено @ 19:47
Вот ещё от Delphi
Код

{ This sample application demonstrates the following features of the
 TOLEContainer:

 - Toolbar negotiation
 - Status bar hints while inplace editing
 - Using the TOLEContainer's dialogs including InsertObject,
   ObjectProperties and PasteSpecial.
 - Using the TOLEContainer's constructors CreateLinkToFile,
   CreateObjectFromFile.
 - Menu merging during in-place activation
}
unit sdimain;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls, Buttons, ExtCtrls, Menus, OleCtnrs, StdCtrls;

type
 TMainForm = class(TForm)
   MainMenu1: TMainMenu;
   File1: TMenuItem;
   Exit1: TMenuItem;
   Help1: TMenuItem;
   About1: TMenuItem;
   Toolbar: TPanel;
   SpeedButton1: TSpeedButton;
   LinkButton: TSpeedButton;
   CopyButton: TSpeedButton;
   CutButton: TSpeedButton;
   PasteButton: TSpeedButton;
   OpenButton: TSpeedButton;
   OpenDialog1: TOpenDialog;
   StatusPanel: TPanel;
   StatusBar: TStatusBar;
   Save1: TMenuItem;
   SaveAs1: TMenuItem;
   SaveDialog1: TSaveDialog;
   Open1: TMenuItem;
   N2: TMenuItem;
   SaveButton: TSpeedButton;
   Edit1: TMenuItem;
   Object1: TMenuItem;
   N4: TMenuItem;
   PasteSpecial1: TMenuItem;
   Paste1: TMenuItem;
   Copy1: TMenuItem;
   Cut1: TMenuItem;
   New1: TMenuItem;
   Panel1: TPanel;
   OleContainer1: TOleContainer;
   procedure Exit1Click(Sender: TObject);
   procedure Copy1Click(Sender: TObject);
   procedure Paste1Click(Sender: TObject);
   procedure Object2Click(Sender: TObject);
   procedure LinkButtonClick(Sender: TObject);
   procedure About1Click(Sender: TObject);
   procedure Save1Click(Sender: TObject);
   procedure File1Click(Sender: TObject);
   procedure Open1Click(Sender: TObject);
   procedure CutButtonClick(Sender: TObject);
   procedure New1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Object1Click(Sender: TObject);
   procedure Cut1Click(Sender: TObject);
   procedure PasteSpecial1Click(Sender: TObject);
   procedure Edit1Click(Sender: TObject);
 private
   ObjectFileName: TFileName;
   InsertCanceled: Boolean;
   procedure ShowHint(Sender: TObject);
 end;

var
 MainForm: TMainForm;

implementation

uses about;

{$R *.dfm}

procedure TMainForm.ShowHint(Sender: TObject);
begin
 Statusbar.Panels[0].Text := Application.Hint;
end;

procedure TMainForm.Exit1Click(Sender: TObject);
begin
 Close;
end;

procedure TMainForm.Copy1Click(Sender: TObject);
begin
 OleContainer1.Copy;
 PasteButton.Enabled := True;
end;

procedure TMainForm.Paste1Click(Sender: TObject);
begin
 if (OleContainer1.State = osEmpty) or
   (MessageDlg('Replace existing object?', mtConfirmation, mbOkCancel, 0) = mrOk) then
 begin
   OleContainer1.Paste;
   CopyButton.Enabled := True;
   CutButton.Enabled := True;
 end;
end;

procedure TMainForm.Object2Click(Sender: TObject);
begin
 if OleContainer1.State <> osEmpty then
   OleContainer1.ObjectPropertiesDialog;
end;

procedure TMainForm.LinkButtonClick(Sender: TObject);
begin
 if (OleContainer1.State = osEmpty) or
   (MessageDlg('Replace existing object?', mtConfirmation, mbOkCancel, 0) = mrOk) then
   with OpenDialog1 do
     if OpenDialog1.Execute then
     begin
       OleContainer1.CreateLinkToFile(FileName, False);
       ObjectFileName := FileName;
       CutButton.Enabled := True;
       CopyButton.Enabled := True;
       PasteButton.Enabled := OleContainer1.CanPaste;
     end;
end;

procedure TMainForm.About1Click(Sender: TObject);
begin
 AboutBox := TAboutBox.Create(Self);
 try
   AboutBox.ShowModal;
 finally
   AboutBox.Free;
 end;
end;

procedure TMainForm.Save1Click(Sender: TObject);
begin
 with SaveDialog1 do
 begin
   SaveDialog1.FileName := ObjectFileName;
   if (Length(FileName) = 0) or (Sender = SaveAs1) then
   begin
     if Execute then
     begin
       OleContainer1.SaveToFile(FileName);
       ObjectFileName := FileName;
     end
   end
   else
     OleContainer1.SaveToFile(FileName);
 end;
end;

procedure TMainForm.File1Click(Sender: TObject);
begin
 with OleContainer1 do
 begin
   Save1.Enabled := Modified;
   SaveAs1.Enabled := Modified;
 end;
end;

procedure TMainForm.Open1Click(Sender: TObject);
begin
 with OpenDialog1 do
   if Execute then
   begin
     OleContainer1.CreateObjectFromFile(FileName, False);
     ObjectFileName := FileName;
     CutButton.Enabled := True;
     CopyButton.Enabled := True;
     PasteButton.Enabled := True;
   end;
end;

procedure TMainForm.CutButtonClick(Sender: TObject);
begin
 if OleContainer1.State <> osEmpty then
   with OleContainer1 do
   begin
     Copy;
     DestroyObject;
     CopyButton.Enabled := False;
     PasteButton.Enabled := OleContainer1.CanPaste;
     ObjectFilename := '';
   end;
end;

procedure TMainForm.New1Click(Sender: TObject);
begin
 if (OleContainer1.State = osEmpty) or
   (MessageDlg('Delete existing object?', mtConfirmation, mbOkCancel, 0) = mrOk) then
   begin
     InsertCanceled := false;
     with OleContainer1 do
     begin
       DestroyObject;
       Object1Click(Sender);
       if not InsertCanceled then
       begin
       DoVerb(PrimaryVerb);
       ObjectFileName := '';
       end;
     end
   end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
 ObjectFileName := '';
 Application.OnHint := ShowHint;
end;

procedure TMainForm.Object1Click(Sender: TObject);
begin
 if (OleContainer1.State = osEmpty) or
   (MessageDlg('Delete current OLE object?', mtConfirmation, mbOkCancel, 0) = mrOk) then
   if OleContainer1.InsertObjectDialog then
   begin
     CutButton.Enabled := True;
     CopyButton.Enabled := True;
     PasteButton.Enabled := OleContainer1.CanPaste;
     with OleContainer1 do
       DoVerb(PrimaryVerb);
   end
   else
    InsertCanceled := true;
end;

procedure TMainForm.Cut1Click(Sender: TObject);
begin
 OleContainer1.Copy;
 OleContainer1.DestroyObject;
 CutButton.Enabled := False;
 CopyButton.Enabled := False;  
 PasteButton.Enabled := OleContainer1.CanPaste;  
end;

procedure TMainForm.PasteSpecial1Click(Sender: TObject);
begin
 if (OleContainer1.State = osEmpty) or
   (MessageDlg('Delete current OLE object?', mtConfirmation, mbOkCancel, 0) = mrOk) then
 begin
   if OleContainer1.PasteSpecialDialog then
   begin
     CutButton.Enabled := True;
     CopyButton.Enabled := True;
     PasteButton.Enabled := OleContainer1.CanPaste;
   end;
 end;
end;

procedure TMainForm.Edit1Click(Sender: TObject);
begin
 with OleContainer1 do
 begin
   Cut1.Enabled := State <> osEmpty;
   Copy1.Enabled := State <> osEmpty;
   Paste1.Enabled := CanPaste;
   PasteSpecial1.Enabled := CanPaste;
 end;
end;

end.


Сама форма
Код

object MainForm: TMainForm
 Left = 231
 Top = 121
 AutoScroll = False
 Caption = 'OLE Demo'
 ClientHeight = 336
 ClientWidth = 441
 Color = clBtnFace
 Ctl3D = False
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -10
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 Menu = MainMenu1
 OldCreateOrder = True
 Position = poScreenCenter
 Scaled = False
 ShowHint = True
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Toolbar: TPanel
   Left = 0
   Top = 0
   Width = 441
   Height = 40
   Align = alTop
   BevelInner = bvRaised
   BevelOuter = bvLowered
   TabOrder = 0
   object SpeedButton1: TSpeedButton
     Left = 7
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Exit'
     Glyph.Data = {
       76010000424D7601000000000000760000002800000020000000100000000100
       04000000000000010000120B0000120B00001000000000000000000000000000
       800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00330000000000
       03333377777777777F333301111111110333337F333333337F33330111111111
       0333337F333333337F333301111111110333337F333333337F33330111111111
       0333337F333333337F333301111111110333337F333333337F33330111111111
       0333337F3333333F7F333301111111B10333337F333333737F33330111111111
       0333337F333333337F333301111111110333337F33FFFFF37F3333011EEEEE11
       0333337F377777F37F3333011EEEEE110333337F37FFF7F37F3333011EEEEE11
       0333337F377777337F333301111111110333337F333333337F33330111111111
       0333337FFFFFFFFF7F3333000000000003333377777777777333}
     NumGlyphs = 2
     OnClick = Exit1Click
   end
   object LinkButton: TSpeedButton
     Left = 217
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Link to file'
     Glyph.Data = {
       76010000424D7601000000000000760000002800000020000000100000000100
       04000000000000010000130B0000130B00001000000000000000000000000000
       800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00300033300000
       00003777FF377777777707070330FFFFFFF077777F37F3FF3FF707370330F00F
       00F077F77F37F773773707370330FFFFFFF077F77F37F3FFFF3707070330F000
       0FF077777337F777733730003330FFFFFFF037773337F3FF3FF733033330F00F
       0000337FFF37F773777733000330FFFF0FF033777FF7F3FF7F3733007030F08F
       0F03337777F7F7737F7330703700FFFF003337773777FFFF7733307333700000
       0333377FF37777777FFF33073070333000033377F777FF37777F333077000307
       7770333777777F7777773333003300003300333377337777FF77333333333307
       7770333333333377777733333333333000033333333333377773}
     NumGlyphs = 2
     OnClick = LinkButtonClick
   end
   object CopyButton: TSpeedButton
     Left = 147
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Copy'
     Enabled = False
     Glyph.Data = {
       06020000424D0602000000000000760000002800000028000000140000000100
       0400000000009001000000000000000000001000000000000000000000000000
       80000080000000808000800000008000800080800000C0C0C000808080000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333FFFFFFFFFF33333333300000000003333333333888888888
       8F3333333330FFFFFFFF033333333338F33333338F3333333330BFBFBFBF0333
       33333338F3FFFFFF8F3333333330F888888F033333333338F88888838F333333
       3330BFBFBFBF0333333FFFF8F3FFFFFF8F3333000000F888888F033333888888
       F88888838F33330FFFF0BFBFBFBF0333338F3338F3FFFFFF8F33330FFFF0F888
       888F0333338F3338F88888838F33330F7770BFBFBFBF0333338F3338F333333F
       8F33330FFFF0FFFFFF000333338F3338F33333888333330F7770BFBFBF003333
       338F3338FFFFFF883333330FFFF0000000033333338F3338888888833333330F
       777777F033333333338F33333338F3333333330FFFFFFFF033333333338F3333
       33F8F3333333330FFFFFF00033333333338F3333388833333333330FFFFFF003
       33333333338FFFFFF88333333333330000000033333333333388888888333333
       3333333333333333333333333333333333333333333333333333333333333333
       33333333333333333333}
     NumGlyphs = 2
     OnClick = Copy1Click
   end
   object CutButton: TSpeedButton
     Left = 117
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Cut'
     Enabled = False
     Glyph.Data = {
       06020000424D0602000000000000760000002800000028000000140000000100
       0400000000009001000000000000000000001000000000000000000000000000
       80000080000000808000800000008000800080800000C0C0C000808080000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333333333333333333333333333333333333FFFF333333FF
       FF33333844833333384483333338888FF33338888FF333843348333384334833
       3388F388F333883388F3338433343333433348333388F338F3338F3388F33384
       33343333433348333388FF38FF338F3388333338433483384334833333388FF8
       8FF88FF883333333844448844448333333338888888888883333333333444444
       4433333333333388888888333333333333346FF6433333333333333883F88F33
       333333333330F00F0333333333333338388383F333333333330FFFF0F0333333
       3333338333F8383F3333333330FFF00FFF033333333338333883F383F3333333
       0FFF0330FFF033333333833383383F383F333330FFF033330FFF033333383338
       333383F383F3330FFF03333330FFF033338F33833333383F38F3330FF0333333
       330FF033338F383333333383F8F3330F033333333330F033338F833333333338
       38F3330033333333333300333388333333333333883333333333333333333333
       33333333333333333333}
     NumGlyphs = 2
     OnClick = CutButtonClick
   end
   object PasteButton: TSpeedButton
     Left = 177
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Paste'
     Enabled = False
     Glyph.Data = {
       06020000424D0602000000000000760000002800000028000000140000000100
       0400000000009001000000000000000000001000000000000000000000000000
       80000080000000808000800000008000800080800000C0C0C000808080000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333FFFFFFFFF333333333300000000033333333333888888
       888F33333333330BFBFBFB03333FFFFFFF8F3FFFFF8F33000000000F88888F03
       33888888888F8888838F307F7F7F7F0BFBFBFB0338F33333338F333FFF8F30F7
       F7F7F70F77888F0338F33333338FFF88838F307F7F7F74444BFBFB0338F33333
       38888F3FFF8F30F7F7F7F7C447888F0338F3333333888F88838F307F7F7F744C
       4BFBFB0338F3333338888F333F8F30F7F7F7444F4FFF880338F33333888F8333
       8883307F7F74440BFBFB803338F33338888FFFFF883330F7F744470000000333
       38F33388838888888333307F7F747F7F0333333338F3333833338F33333330F7
       F7F7F7F70333333338F3333333338F333333307F7F7F7F7F0333333338F33FFF
       FFF38F33333330F7444444F703333333383F888888FF833333333300ECCCC400
       33333333338838888888333333333333ECCCC433333333333333388888333333
       333333333EEEE333333333333333333333333333333333333333333333333333
       33333333333333333333}
     NumGlyphs = 2
     OnClick = Paste1Click
   end
   object OpenButton: TSpeedButton
     Left = 44
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Open file'
     Glyph.Data = {
       06020000424D0602000000000000760000002800000028000000140000000100
       0400000000009001000000000000000000001000000000000000000000000000
       80000080000000808000800000008000800080800000C0C0C000808080000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       333FFFFFFFFFFFFFF3333380000000000000333333888888888888883F333300
       7B7B7B7B7B7B033333883F33333333338F33330F07B7B7B7B7B70333338F8F33
       3333333383F3330B0B7B7B7B7B7B7033338F83F33333333338F3330FB0B7B7B7
       B7B7B033338F38F333333333383F330BF07B7B7B7B7B7B03338F383FFFFF3333
       338F330FBF000007B7B7B703338F33888883FFFFFF83330BFBFBFBF000000033
       338F3333333888888833330FBFBFBFBFBFB03333338F333333333338F333330B
       FBFBFBFBFBF03333338F33333FFFFFF83333330FBFBF0000000333333387FFFF
       8888888333333330000033333333333333388888333333333333333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       33333333333333333333}
     NumGlyphs = 2
     OnClick = Open1Click
   end
   object SaveButton: TSpeedButton
     Left = 74
     Top = 5
     Width = 30
     Height = 30
     Hint = 'Save file'
     Glyph.Data = {
       06020000424D0602000000000000760000002800000028000000140000000100
       0400000000009001000000000000000000001000000000000000000000000000
       80000080000000808000800000008000800080800000C0C0C000808080000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333333333333333333FFFFFFFFFFFFFF3333380000000000008333
       333888F8FF888F888F333330CC08CCF770CC0333333888F8FF888F888F333330
       CC08CCF770CC0333333888F888888F888F333330CC07887770CC03333338888F
       FFFFF8888F333330CC60000006CC033333388888888888888F333330CCCCCCCC
       CCCC033333388888888888888F333330C6000000006C03333338888888888888
       8F333330C0FFFFFFFF0C0333333888FFFFFFFF888F333330C0FFFFFFFF0C0333
       333888FFFFFFFF888F333330C0FFFFFFFF0C0333333888FFFFFFFF888F333330
       C0FFFFFFFF0C0333333888FFFFFFFF888F33333000FFFFFFFF000333333888FF
       FFFFFF888F333330C0FFFFFFFF0C0333333888FFFFFFFF888F33333800000000
       0000833333388888888888888333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       33333333333333333333}
     NumGlyphs = 2
     OnClick = Save1Click
   end
 end
 object StatusPanel: TPanel
   Left = 0
   Top = 319
   Width = 441
   Height = 17
   Align = alBottom
   BevelOuter = bvNone
   Caption = 'StatusPanel'
   Locked = True
   TabOrder = 1
   object StatusBar: TStatusBar
     Left = 0
     Top = 0
     Width = 441
     Height = 17
     Align = alClient
     Panels = <
       item
         Width = 50
       end>
   end
 end
 object Panel1: TPanel
   Left = 0
   Top = 40
   Width = 441
   Height = 279
   Align = alClient
   BevelOuter = bvNone
   BorderWidth = 10
   Caption = 'Panel1'
   TabOrder = 2
   object OleContainer1: TOleContainer
     Left = 10
     Top = 10
     Width = 421
     Height = 259
     Align = alClient
     Caption = 'OleContainer1'
     Ctl3D = True
     ParentCtl3D = False
     TabOrder = 0
   end
 end
 object MainMenu1: TMainMenu
   Left = 453
   Top = 6
   object File1: TMenuItem
     Caption = '&File'
     OnClick = File1Click
     object New1: TMenuItem
       Caption = '&New'
       OnClick = New1Click
     end
     object Open1: TMenuItem
       Caption = '&Open...'
       OnClick = Open1Click
     end
     object Save1: TMenuItem
       Caption = '&Save'
       OnClick = Save1Click
     end
     object SaveAs1: TMenuItem
       Caption = 'Save &As...'
       OnClick = Save1Click
     end
     object N2: TMenuItem
       Caption = '-'
     end
     object Exit1: TMenuItem
       Caption = 'E&xit'
       OnClick = Exit1Click
     end
   end
   object Edit1: TMenuItem
     Caption = '&Edit'
     GroupIndex = 1
     OnClick = Edit1Click
     object Cut1: TMenuItem
       Caption = 'Cu&t'
       OnClick = Cut1Click
     end
     object Copy1: TMenuItem
       Caption = '&Copy'
       OnClick = Copy1Click
     end
     object Paste1: TMenuItem
       Caption = '&Paste'
       OnClick = Paste1Click
     end
     object PasteSpecial1: TMenuItem
       Caption = 'Paste &Special...'
       OnClick = PasteSpecial1Click
     end
     object N4: TMenuItem
       Caption = '-'
     end
     object Object1: TMenuItem
       Caption = 'Insert &Object'
       OnClick = Object1Click
     end
   end
   object Help1: TMenuItem
     Caption = '&Help'
     GroupIndex = 5
     object About1: TMenuItem
       Caption = '&About'
       OnClick = About1Click
     end
   end
 end
 object OpenDialog1: TOpenDialog
   Options = [ofHideReadOnly, ofFileMustExist]
   Left = 391
   Top = 6
 end
 object SaveDialog1: TSaveDialog
   Options = [ofOverwritePrompt, ofHideReadOnly]
   Left = 359
   Top = 6
 end
end

В той же папке файл olesdi.dpr :thumbs-up :cool
Добавлено @ 19:49
Вывод: помимо форума, лучший друг - папка Demos... :)

Автор: Vorona 27.10.2004, 22:23
Pakshin A. S.
это все конечно хорошо, но ничего не понятно
в том-то и отличие форума и этой самой папки
то есть ты хочешь сказать, что для загрузки одного-единственного файла все это писать надо?!

Автор: Girder 27.10.2004, 22:50
Люба у меня все Ok!

Послал тебе свой пример...

Автор: Vorona 28.10.2004, 00:17
Girder
Спасибо :) , но я не могу сейчас открыть этот проект, в инете вирус, и Mail.ru не разрешает открывать мне все Zip-ы

Если тебе не трудно, заархивируй его иначе... :) :)

Автор: Гость_Pakshin A. S. 28.10.2004, 16:24
Цитата

то есть ты хочешь сказать, что для загрузки одного-единственного файла все это писать надо?!



Не, ну ты даешь... только то, что касается открытия... Плюс надо глянуть на события самой формы, если они есть (OnShow, OnCreate) и в события компонента, опять-таки если они есть...

Автор: Vorona 28.10.2004, 16:53
Girder

Огромное-преогромное спасибо!! :D :D
Видимо, дело было в OleContainer1.OldStreamFormat:=false;
Теперь все отлично грузится!!! :D
p/s/ я и не думала подозревать, что в твоем архиве вирусы.. Просто mail.ru предупредило, что они могут проникать даже в письма известных отправителей :)

Pakshin A. S.

Ну дак а смысл был тогда все копировать? Ну да ладно, вопрос уже решился с помощью одной лишь строчки!..

Автор: Гость_Pakshin A. S. 28.10.2004, 17:14
А вот если бы сразу в пример посмотрела, да ещё всё детально прогладела, особенно загрузка файла и все опции компонентов, то не заметить отличие со стандартным компонентом невозможно! Тама так и написано было OldStreamFormat = False.

Всё-таки Demos - великая вещь!!! :thumbs-up

Автор: Darksquall 29.10.2004, 13:49
Люба, если в твоей проге планируется сохранять файл из оле контейнера, попробуй созранить и сравни размер исходного файла с полученным после контейнера, что бы потом не было разочарований.

у меня подобная проблема была, пришлось вообще от контейнера отказаться. Хотя для некоторых целей он вполне подходит

Автор: Vorona 29.10.2004, 14:16
Darksquall
да, я знаю, что Ole - проблемный компонент, но мне без него никак... в тексте куча формул и картинки
мне всего лишь надо отображать информацию, а потом, если пользователь захочет изменить текст, то я просто открою ему Word (еще не знаю правда как, но наверное можно)
ты случайно не знаешь (у меня есть адрес этого файла, просто надо его открыть)? :)

Автор: Полудненко Олег 29.10.2004, 19:17
Люба лично я делал так: вордовский документ сохранял в формате веб-страницы, а потом грузил всё в WebBrowser. Всё крайне просто и без багов!

Автор: Darksquall 3.11.2004, 11:54
Люба есть много вариантов, но везде свои проблемы вылазят. :)
можно обратиться к методам ворда находящегося в контейнере, можно открыть новый ворд без контейнера (и например не указывать св-во Visible=true)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)