К списку форумов К списку вопросов
Как узнать метод класса?
Cool
05.04.2004 - 10:51
Есть класс, но я знаю не все его методы а доки по этому делу в инете не много ( COM("word.application") ) Возможно я могу ошибаться, но, кажется, я где-то и когда-то видел функцию, которая возвращает методы объекта, переданного ей в качестве параметра. Поискал в инете - пусто. Если я не ошибаюсь, подскажите имя этой функции.
Mips
1 - 05.04.2004 - 11:26
эти?
http://www.devguru.com/Technologies/wsh/quickref/wsh_methods.html
Mips
2 - 05.04.2004 - 11:29
может просто открыть справочник по VBa Word и посмотреть там что нужно?
Cool
3 - 05.04.2004 - 12:05
№1: Не, не эти.
Тогда уж проще залезть в MSDN и узнать там, что собсно я и уже сделал. Там есть примеры для VBA и C#. НО там все немного по другому чем в ПХП. К примеру:
rng.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter;
Я думаю не стоит пояснять, куда пошлет ПХП есть дать ему эту строчку (естественно подставив вместо . -> и имена объектов поменять)
В ПХП эта строчка выглядит так:
$word->Selection->ParagraphFormat->Alignment=1;
Но это все лирика и отступление. Мне по сути, необходимо объединить 2 ячейки таблицы. Информации по этому в справочнике по VBA я не нашел. Но все таки нашел фукнцию, чтобы узнать методы класса: get_class_methods
но наткнулся на такую проблему.. делаю все, как в мануале:
$w=new COM("word.application");
$class_name=get_class($w);
echo $class_name."<br>";
$methods=get_class_methods($class_name);
foreach($methods as $mthod_name)
  echo $method_name."<br>";
$w->Quit();
В ответ получаю лишь: COM
Т.е. имя класса объекта. Методы он вупор не хочет показывать. Оно и понятно, методы различны, в зависимости от параметра, переданного в конструктор, но меня это не устраивает...
Mips
4 - 05.04.2004 - 15:00
Я как-то не задавался такой целью. Мне хватает мануала VBa Word. Почти всё, что там есть работает и тут. Тока это... СОМ работает тока в win32 если что. У тебя хостинг на какой оси? ;)
Кстати, ты не одинок, у буржуев тоже такие траблы с получением списка методов. Посмотри последний ответ на php.net/get-class-methods
И вообще. Если ты так будешь работать с COM'ом, то надолго тебе памяти не хватит. Так ты не выгрузишь из памяти ворд. Каждый зашедший юзер будет запускать новый ворд и он будет висеть в памяти.
$w->Visible = 0;
$w->Quit();
@$w->Release();
$w = null;
 
Удачных поисков :) Найдёшь способ получения методов - стукни в асю.
Cool
5 - 05.04.2004 - 15:57
Оке, пошерстю мануалы по ВБа.
Конечно вин32.
Да, я посмотрю, как только у меня маршрут поднимется до php.net сутра трасерт не идет, на 23ем шаге падает. Прокси использовать не могу :\
Но что-то мне подсказывает что я не найду ответ. Если верить мануалу:
( http://www.atom.ru/~cool/heap/com.html#faq.com.q13 ) то ответа на сей день нет и не предвидется. Хотя в принципе можно попробовать с помощью method_exists чисто перебором найти методы, поскольку в качестве аргумента она принимает не имя класса, а объект класса, но что-то такой вариант меня не прет ;(
С памятью проблем вроде нет, смотрел в диспетчере задач - все нормально закрывается, процесс уничтожается, память освобождается. Но все равно допишу как ты посоветовал. Пасиб
q1
6 - 05.04.2004 - 16:35
использовать word через com на сервере - это гемор, имхо. чуть что и у тебя появляется зависший ворд в таск менеджере.
микрософт даже сами писали в мсдн(точно не помню где), что не рекомендуется использовать word таким образом на сервере.

К списку вопросов на форуме Веб-дизайн

>>