Как работать с OLE объектом

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как работать с OLE объектом

Сообщение EmeraldMan » 30.10.2008 21:36:56

Пока еще не возможно присваивать значения свойствам или как это понимать?

Похоже так и есть, у меня такой же косяк...
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Как работать с OLE объектом

Сообщение Sergei I. Gorelkin » 30.10.2008 22:10:14

Может, пока изменение свойств "напрямую" не доделано, оно будет работать путем вызова процедур-сеттеров?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как работать с OLE объектом

Сообщение EmeraldMan » 31.10.2008 01:10:31

Интересно, а будут ли вообще это доделывать?..
В случае с OpenOffice всё работает отлично! Потому как там свойства задаются не присваиванием, а так:
Код: Выделить всё
Document.GetText.CreateTextCursor.SetPropertyValue('CharColor', 255);
Document.GetText.CreateTextCursor.SetPropertyValue('CharShadowed', True);
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Как работать с OLE объектом

Сообщение kosteek » 02.11.2009 23:32:47

Дабы не размножать темы, решил продолжить тут.
Проблема в переходе на нужную вкладку
Код: Выделить всё
...
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;


...


Подскажите как перейти на вкладку?
На Делфи работает так: MsExcel.ActiveWorkbook.Sheets.Item['FIO'].select;
kosteek
постоялец
 
Сообщения: 203
Зарегистрирован: 24.07.2008 14:57:09
Откуда: Украина, г.Славянск

Re: Как работать с OLE объектом

Сообщение 2er0_7011er4nce » 04.04.2013 09:22:38

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&

Wrd.Visible := true; //<==грабли тут
Попробуй исправить на Wrd.Visible := Visible;
2er0_7011er4nce
незнакомец
 
Сообщения: 1
Зарегистрирован: 04.04.2013 09:14:26

Re: Как работать с OLE объектом

Сообщение Alex2013 » 04.04.2013 12:59:47

А зачем OC.SetProperty('Visible',[True]); ?
Почему не OC.Visible := True ; :?:
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

Re: Как работать с OLE объектом

Сообщение VirtUX » 10.04.2013 14:34:37

1. Есть-ли возможность использовать OLE для работы с xls-документами без установки на ПК самого M$ Office Excel?
2. Как обрабатывать xls-документы в Linux?
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Как работать с OLE объектом

Сообщение alexey38 » 10.04.2013 15:34:31

VirtUX писал(а):1. Есть-ли возможность использовать OLE для работы с xls-документами без установки на ПК самого M$ Office Excel?

Нет. Работа с Excel через OLE предназначена как раз для выполнения всех операций именно самим M$ Office Excel. Это не ради правки документов, это как бы реализация макросов не на бэйсике, а на другом языке, например, на паскале.
Если хотите по простому работать с xls-документами без установки на ПК самого M$ Office Excel, то вначале средствами M$ Office Excel сохраните документ в формате XML и дальше просто редактируйте XML. Excel прекрасно работает с документом XML.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Как работать с OLE объектом

Сообщение vada » 10.04.2013 16:59:51

У меня OLE работает. XSLT преобразование. Причем, имя файла fName имеет тип Variant. Иначе не работает!!!!!
Код: Выделить всё
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;
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Как работать с OLE объектом

Сообщение Angel_19 » 16.05.2015 18:00:44

2er0_7011er4nce писал(а):Wrd.Visible := true; //<==грабли тут

Попробуйте вначале прочитать значение, а потом присваивать. У меня работает.
Angel_19
новенький
 
Сообщения: 37
Зарегистрирован: 24.06.2014 17:29:47

Re: Как работать с OLE объектом

Сообщение alex208210 » 18.05.2015 11:20:24

1. Есть-ли возможность использовать OLE для работы с xls-документами без установки на ПК самого M$ Office Excel?

нет, именно поэтому в очередной раз напишу что использовать OLE это неправильно. Грошь цена такой программе, которая использует привязку к офису и не работает без него.
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: Как работать с OLE объектом

Сообщение sign » 19.05.2015 07:03:31

Ставьте бесплатный офис (например, LibreOffice).
И будете работать с xls-документами без проблем.
И всюду, где нужно, вы можете накатить этот бесплатный офис, не выясняя, есть так ёксель или как.

У меня лично именно так.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 226

Рейтинг@Mail.ru