Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

Работа проги в 98 и в ХР   Найти похожие ветки 

 
balagur ©   (2006-06-08 07:51) [0]

Доброго времени суток!
Есть прога, которая работала и под 98 и под ХР. Возникла необходимость сделать апгрейд (добавил кнопку с выводом в Ворд результатов выборки). Теперь под 98 она работать не хочет, т.е. ошибок нет, она просто висит в процессах и ни ответа, ни привета. Причем, старый вариант работает нормально, но после того, как запускаешь новую версию нужен ребут, чтобы старый вариант заработал снова.
Подскажите, где подкрутить-посмотреть.
Спасиба.


 
StriderMan ©   (2006-06-08 08:28) [1]

а че показывает отладчик?


 
balagur ©   (2006-06-08 08:47) [2]

дело в том, что на машине пользователя нету Delphi, т.е. я им отношу экзешник уже скомпиленный.


 
ЮЮ ©   (2006-06-08 09:20) [3]


> (добавил кнопку с выводом в Ворд результатов выборки).


А когда дельфи устанавливаешь, не задумывался компоненты какого Offica ставить?

>дело в том, что на машине пользователя нету Delphi, т.е. я им отношу экзешник уже скомпиленный.

Тогда снеси у себя Office XP и поставь Office 97/


 
StriderMan ©   (2006-06-08 09:29) [4]

Проверка на разных версиях ОС обязательный пункт тестирования софта, для этого я лично использую виртуальные машины WMware


 
DevilDevil ©   (2006-06-08 10:10) [5]

Используй не компоненты, а OLE Automation:

var
 MsWord : variant;
begin
 MsWord := CreateOleObject("Word.Application");

...
MsWord.Quit;
MsWord := UnAssigned;
end;


 
tesseract ©   (2006-06-08 10:12) [6]


> дело в том, что на машине пользователя нету Delphi, т.е.
>  я им отношу экзешник уже скомпиленный.


Сделай редим лога тогда что-ли. хоть будешь знать на какой стадии компонент повесился.


 
balagur ©   (2006-06-08 10:51) [7]

Реально снес ХР и поставив 97 Office такая же трабла возникла...
По поводу теста под разными ОС - дельное замечание, учту, заодно про WMware узнаю, что такое и с чем едят.
Сейчас буду делать с Ole. Думаю,что все получится (сообщу обязательно)
Спасибо большое :)


 
ЮЮ ©   (2006-06-08 11:00) [8]


> Думаю,что все получится (сообщу обязательно)


У меня вчера почти такой же код как в  [5]  "висел" под ХР, летая на 2К, где собственно и компилил. Так что ещё ничего не гарантировано.


 
balagur ©   (2006-06-08 11:07) [9]

Не судьба...
try
   MSWord:=CreateOleObject("Word.Application");
   MSWord.Visible:=True;
 except
   Exception.Create("Microsoft Word");
 end;
 MSWord.Documents.Add;
 MSWord.Selection.Font.Size:=12;
 MSWord.Selection.Font.Name:="Arial";
 MSWord.ActiveDocument.PageSetup.Orientation:=wdOrientLandscape;
.......
 MSWord.Selection.TypeText(tx);
 MsWord.Quit;

отладчик пишет:
process not accessible


 
StriderMan ©   (2006-06-08 11:13) [10]


> except
>    Exception.Create("Microsoft Word");
>  end;

raise Exception.Create("Microsoft Word");


 
ЮЮ ©   (2006-06-08 11:20) [11]

А точно там может возникнуть Exeption?
Мне попался такой для проверки успешного старта :

if  VarIsEmpty(MSWord) then
   ShowMessage("Could not start MS Word");


 
StriderMan ©   (2006-06-08 11:25) [12]


> А точно там может возникнуть Exeption?

Вообще Exception там возникнет либо если не найден объект "Word.Application", либо если он не поддерживает св-во Visible.
а вообще проверить > VarIsEmpty(MSWord) тоже неплохо бы. Но лучше MSWord = UnAssigned


 
balagur ©   (2006-06-08 11:28) [13]


> Вообще Exception там возникнет либо если не найден объект
> "Word.Application", либо если он не поддерживает св-во Visible.
>
> а вообще проверить > VarIsEmpty(MSWord) тоже неплохо бы.
>  Но лучше MSWord = UnAssigned


т.е.
MsWord.Quit;
MsWord := UnAssigned; ?

поставил, но результат тот же


 
ЮЮ ©   (2006-06-08 11:29) [14]


> Но лучше MSWord = UnAssigned
>


У меня дома стоит такая интерсная кофигкрация жереза, Ос и Делфи, что на твоем лучше я схлопотал бы ошибку преобразования :)


 
StriderMan ©   (2006-06-08 11:35) [15]

не

> MsWord := UnAssigned

а
if MSWord = UnAssigned then ...


 
ЮЮ ©   (2006-06-08 11:41) [16]

Некошерно сравнивать с UnAssigned, равно как и с NULL.
VarIsEmpty и VarIsNull существуют не для красивого словца.


 
StriderMan ©   (2006-06-08 11:45) [17]


> Некошерно сравнивать с UnAssigned, равно как и с NULL.
> VarIsEmpty и VarIsNull существуют не для красивого словца

Согласен, поторопился.


 
balagur ©   (2006-06-08 11:57) [18]

прописал это    
if VarisEmpty(MsWord) then
  ShowMessage("Could not start MS Word_");
и в try и в except и в конце, но ничего...

залез в Install Packages и нашел, что у меня указана только Microsoft Office XP Sample Automation Server...
может еще и в этом дело?


 
balagur ©   (2006-06-08 12:16) [19]

еще есть какие-нить варианты? а то как-то завально получается :)


 
DevilDevil ©   (2006-06-08 12:17) [20]

Может у клиента MS Office не стоит?


 
balagur ©   (2006-06-08 12:22) [21]

в смысле? Есть все и Ворд и Эксель и все остальное...


 
StriderMan ©   (2006-06-08 12:25) [22]

попробуй тип OleVariant вместо Variant


 
balagur ©   (2006-06-08 12:27) [23]

после пяти неудачных попыток поразить мишень, грузинский биатлонист зарезал ее ножом :)
про меня :) нефтыкается OleVariant...


 
saxon   (2006-06-08 12:29) [24]

Попробуй через набор ShowMessage"ев опредлелить где подвисает.


 
balagur ©   (2006-06-08 12:31) [25]

имеешь ввиду понафтыкать message"й почти после каждой строки?


 
StriderMan ©   (2006-06-08 12:32) [26]


> нефтыкается OleVariant

в смысле? та же самая канитель?


 
saxon   (2006-06-08 12:33) [27]

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


 
balagur ©   (2006-06-08 12:34) [28]

> нефтыкается OleVariant

> в смысле? та же самая канитель?

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


 
saxon   (2006-06-08 12:35) [29]

Кстати, а в системных сообщениях ничего нет?
Может там ворд чего написал.


 
StriderMan ©   (2006-06-08 12:41) [30]

а в процессах WINWORD висит?


 
balagur ©   (2006-06-08 12:41) [31]

Ворд даже не запускается, а при уже запущенном ничего не происходит
а стопит его на третьей строке, т.е. он на нее приходит и началось...

begin
 Application.Initialize;
 Application.CreateForm(TFW1, FW1);
 Application.CreateForm(TFSpisok, FSpisok);
 Application.CreateForm(TFEdSp, FEdSp);
 Application.CreateForm(TFpb, Fpb);
 Application.CreateForm(TFImpExp, FImpExp);
 Application.CreateForm(TFVipl, FVipl);
 Application.CreateForm(TFCdisk, FCdisk);
 Application.CreateForm(TFormGor, FormGor);
 Application.Run;
end.


 
StriderMan ©   (2006-06-08 12:46) [32]

а где ОЛЕ объект создается? в FormCreate? туда надо мессаджи фтыкать


 
saxon   (2006-06-08 12:48) [33]


> StriderMan ©   (08.06.06 12:46) [32]

+
и вооще это какой вариант с ОЛЕ или как?


 
balagur ©   (2006-06-08 12:48) [34]

нет, он создается по нажатии на кнопку


 
StriderMan ©   (2006-06-08 12:51) [35]


> нет, он создается по нажатии на кнопку

ээээ. получается что написал код создания объекта ВОРД в обработчике кнопки, а не поднимается сама форма? ерунда какая-то


 
Slym ©   (2006-06-08 12:53) [36]

ЁЁЁ... Скокаа форм сразу создаешь... неправильно это
Создай главною формочку, остальные по необходимости создавай/убивай.

Оно тебе надо постоянно держать в памяти ImpExp? думаю нет.

и отчеты быстрее/надежнее/лучше делать на report помпонентах FastReport/FreeRep/& other, а уж в них по необходимости экспорт куда нуна


 
Slym ©   (2006-06-08 12:55) [37]

Ниче понять не могу... Ты ворд подгружаешь при запуске приложения чтоли? если так то полный маразм


 
balagur ©   (2006-06-08 12:55) [38]

про то и речь, что создается Ворд на кнопке, а ничего не запускается вообще...
специально поставил Showmessage на FormCreate - так он туда даже не дошел


 
saxon   (2006-06-08 12:57) [39]

На форме компонент ворда не лежит?


 
Slym ©   (2006-06-08 12:57) [40]

Закоментируй код с вордом и запустись если не пашет значит трабла в другом



Страницы: 1 2 вся ветка

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.043 c
2-1152036628
Franzy
2006-07-04 22:10
2006.07.23
Как узнать индекс компонента в списках controls по его имени?


15-1150867721
Ega23
2006-06-21 09:28
2006.07.23
С Днём рождения! 21 июня


2-1151949475
HBreaker
2006-07-03 21:57
2006.07.23
Ошибка CoInitialize has not been called


2-1151833057
Zaza
2006-07-02 13:37
2006.07.23
listbox.itemindex


2-1151778223
Homo Sapiens
2006-07-01 22:23
2006.07.23
Проблема с плейлистом