Пока еще не возможно присваивать значения свойствам или как это понимать?
Похоже так и есть, у меня такой же косяк...
Модератор: Модераторы
Пока еще не возможно присваивать значения свойствам или как это понимать?


Document.GetText.CreateTextCursor.SetPropertyValue('CharColor', 255);
Document.GetText.CreateTextCursor.SetPropertyValue('CharShadowed', True);
...
var
  Form1: TForm1;
  MSExcel     : Variant;
const
  ServerName = 'Excel.Application';
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var s:widestring;
begin
  try
    MSExcel := CreateOleObject(ServerName);
  except
    WriteLn('Ошибка!');
    Exit;
  end;
  if OpenDialog1.Execute then
     begin
     s:= OpenDialog1.FileName ;
     MSExcel.WorkBooks.Open(s);
     MSExcel.Visible := True;
     try
     MsExcel.ActiveWorkbook.Sheets.Item('FIO').select;
    //----  Вылетает тут
     except on E:Exception do
        begin
        memo1.Lines.Add(e.Message);
         exit;
        end;
     end;
     end;
end;
...
ViruZ писал(а):Наткнулся на грабли при попытке переноса функций из WordDll - создал тестовый пример - форма с Button, в обработчике OnClick код:
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
s:=Utf8ToAnsi('Тест ворда из Лазаруса');
Wrd := CreateOleObject('Word.Application');
Wrd.Visible := true; //<==грабли тут
Wrd.Documents.Add;
Wrd.Selection.Font.Size := 20;
Wrd.Selection.TypeText(s);
Wrd.ActiveDocument.SaveAs('c:\test.doc');
Wrd.ActiveDocument.Close;
Wrd.Quit;
end;
Каким образом можно присвоить значение свойству обьекта? Или пока еще подождать, когда работа с OLE-обьектами будет полностью реализована и продолжать разработку DLL&


VirtUX писал(а):1. Есть-ли возможность использовать OLE для работы с xls-документами без установки на ПК самого M$ Office Excel?
function ApplyStylesheet(const XMLFile, XSLFile: String): WideString;
var
  XML, XSL, fName: Variant;
  Html: WideString;
begin
  Html := '';
  XML := CreateOleObject('MSXML2.DOMDocument.6.0');
  XML.ValidateOnParse := True;
  XML.Async := False;
  XSL := CreateOleObject('MSXML2.DOMDocument.6.0');
  XSL.ValidateOnParse := True;
  XSL.Async := False;
  try
    fName := XMLFile;
    XML.load( fName );
  except
    on E: EOleException do
      MessageDlg('Загрузка XML', 'Ошибка чтения файла'#13+UTF8Encode(E.Message), mtError, [mbClose], 0);
  end;
  try
    fName := XSLFile;
    XSL.load( fName );
  except
    on E: EOleException do
      MessageDlg('Загрузка XSL', 'Ошибка чтения файла'#13+UTF8Encode(E.Message), mtError, [mbClose], 0);
  end;
  try
    Html := XML.transformNode(XSL);
  except
    on E: EOleException do
      MessageDlg('XSLT преобразование', 'Ошибка преобразования'#13+ UTF8Encode(E.Message), mtError, [mbClose], 0);
  end;
  Result := Html;
end;

2er0_7011er4nce писал(а):Wrd.Visible := true; //<==грабли тут
1. Есть-ли возможность использовать OLE для работы с xls-документами без установки на ПК самого M$ Office Excel?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1