![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Пользователь
Регистрация: 01.12.2009
Сообщений: 14
|
![]()
работы Ole я долго добивался, почти 4 дня
![]() Первое: Попробую еще манипуляции с типами, после праздников пообещали дать пару справочников на эту тему. Второе: очень хотелось бы узнать эту команду ![]() Третье: Я про цикл я думал, видимо так и сделаю. А насчет того что ищет сначала в папке с exe, так я как понял это С++ функции ищут в этой папке, а это функция OPen маткадовская и она в упор не хочет так делать. |
![]() |
![]() |
![]() |
#32 |
Пользователь
Регистрация: 01.12.2009
Сообщений: 14
|
![]()
Вообщем по передаче чисел, я так и не понял, он сейчас начал требовать с меня в любом случае ComObj.pas. Почитал форуму, вроде пишут что файл должен лежать в папке билдера в подпадке VCL, хотя там только ComObj.hpp. Пошарил поиском не нашёл такой файл на компе вообще.
|
![]() |
![]() |
![]() |
#33 |
Пользователь
Регистрация: 01.12.2009
Сообщений: 14
|
![]()
Вот рабочий код:
//------------------------------------------------------------------------ #include <vcl.h> #pragma hdrstop #include "Unit2.h" //------------------------------------------------------------------------ #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; Variant A,Ms,Mt,R; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm2::Button1Click(TObject *Sender) { A=CreateOleObject("Mathcad.Applicat ion"); A.OlePropertySet("Visible",(Variant )true); Ms=A.OlePropertyGet("Worksheets"); Mt=Ms.OleFunction("Open","e:\\file2 .xmcd"); double i=StrToFloat(Form2->Edit2->Text); double j=StrToFloat(Form2->Edit3->Text); Mt.OleFunction("SetValue","a",i); Mt.OleFunction("SetValue","b",j); Mt.OleFunction("Recalculate"); R=Mt.OleFunction("GetValue","k"); Form2->Edit1->Text=R; Mt.OleFunction("Close",2); A.OleFunction("Quit",2); } //--------------------------------------------------------------------------- void __fastcall TForm2::Button2Click(TObject *Sender) { Form2->Close(); } //------------------------------------------------------------------------ Потестировал приложение на разных машинах, все ок. Медленно правда на слабых компах. Задался я другой целью, связаться с маткадом все-таки использую библиотеку типов. Примеры для Visual C++ В итоге добился следущего: #include <vcl.h> #pragma hdrstop #include "Unit5.h" #include "Mathcad_TLB.h" #include "Mathcad_OCX.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm5 *Form5; //------------------------------------------------------------------------ __fastcall TForm5::TForm5(TComponent* Owner) : TForm(Owner) { } //------------------------------------------------------------------------ void __fastcall TForm5::Button1Click(TObject *Sender) { ::CoInitialize(NULL); { using namespace Mathcad_tlb; IMathcadApplicationPtr App; App.CreateInstance(L"Mathcad.Applic ation"); App->Visible=(Variant)true; App->Worksheets->Add(); App->CloseAll(2); App->Quit(2); } ::CoUninitialize(); } //------------------------------------------------------------------------ void __fastcall TForm5::Button2Click(TObject *Sender) { Form5->Close(); } //------------------------------------------------------------------------ В итоге маткад запускается, создается чистый лист. Проблема - не получается открыть файл никак. Пробовал через App->Worksheets->Open(L"путь файла"), пишет что нужен параметр, адрес на IMathcadWorksheetPtr. Делаю: IMathcadworksheetPtr Wk; App->Worksheets->Open(L"путь файла",&Wk); код ошибок не вызывает при компиляции и при запуске приложения тоже ошибок нет, а вот маткад "молчит". как будто команда open канула в лету. просто висит окошко маткада. |
![]() |
![]() |
![]() |
#34 |
Регистрация: 07.10.2009
Сообщений: 6
|
![]()
привет! составлена программа нахождения локального минимума функции методом покоорденатного спуска, но программа не выводит результат!! помогите найти ошибку, пожалуйста!!
Последний раз редактировалось SmelMary; 22.06.2010 в 09:20. |
![]() |
![]() |
![]() |
#35 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
не находит-значит неправильно ищете. SmelMary,читайте правила форума,создайте тему и ждите пока Вам ответят.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#36 |
Новичок
Джуниор
Регистрация: 11.11.2010
Сообщений: 1
|
![]()
Скажите пожалуйста, в чем ошибка.
|
![]() |
![]() |
![]() |
#37 |
Новичок
Джуниор
Регистрация: 14.03.2016
Сообщений: 1
|
![]()
не подскажите как решить? (Маткад)
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MathCad | werser | Помощь студентам | 1 | 14.12.2009 18:01 |
MathCAD+интерфейс | e-bosh | Помощь студентам | 0 | 01.12.2009 17:07 |
MATHCAD | HECTOR.A. | Помощь студентам | 3 | 08.03.2009 20:21 |
MathCad | madshizik | Microsoft Office Excel | 2 | 10.10.2008 18:36 |