Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Вниз

Delphi 7 + Visio 2003   Найти похожие ветки 

 
zero-g ©   (2006-10-07 08:08) [0]

Доброго времени суток коллеги...
Сидя как то вечером решил покавырять то что написано в теме..
У меня такая проблемма...
делю Menu->Component->Import ActiveX Control -> Microsoft Visio Drawing.
Сделал, все нормально... кидаю компанент на форму, получаю рабочую область Visio, а как мне панели инструментов выташить??????

Панели с линииями там, квадратиками и тд...
Я часа два убил.. так нифига и не понял....

Помогите кто чем сможет, пожалуйста :)


 
zero-g ©   (2006-10-08 09:14) [1]

Никто не работал чтоли ?


 
zero-g ©   (2006-10-09 04:40) [2]

:"(


 
zero-g ©   (2006-10-13 01:37) [3]

Никто не работал с таким ?

....

в общем я поковырял...
сохранить вроде сохраняю в файл

form1.DrawingControl1.Window.Document.SaveAs("c:\q.vsd");

Открыть немогу...
Верней как.. он открывате.. но что куда без понятия...
Как я понял визио открыват в памяти.. кудато... но не мне на форму...
а вот как допустим открыть на форму.. вообще фиг знает..

А если я пытаюсь сам нарисовать чего нить... например ректангл.. мне говорить что этого сделать невозможно, тк приложение заблочино... ?? чего.. куда... я фиг знает...

Ковырял и в Visio_TLB и в VisOcx_TLB (они создаются когда делаешь импор ActivX) нифига не вьехал... чтото гдето въехал.. гдето нет.. в общем либо у мя соображалки нехватает либо я не знаю...

вот мои ковыряния...

procedure TForm1.Button1Click(Sender: TObject);
const
//IID_IDrawingControl: TGUID = "{9BF6FD73-F05B-406E-B938-09E2B413528E}";
//CLASS_DrawingControl: TGUID = "{E4615FA3-23B0-4976-BD3E-D611DDBE330E}";
DIID_EVisOcx: TGUID = "{BD086122-F160-436A-BE7B-6B1D58D14703}";
CLASS_DrawingControl: TGUID = "{000D0700-0000-0000-C000-000000000046}";
var
// Visio: IDrawingControl;
// Visio : IDrawingControlDisp;
  Visio : EVisOcx;
begin
{   Visio :=  CreateComObject(IID_IDrawingControl) as EVisOcx;
  visio.DocumentSavedAs(form1.DrawingControl1.Window.Document);

  Visio := Nil;}
  //form1.DrawingControl1.Window.Shape.DrawRectangle(12,21,12,12);
   form1.DrawingControl1.Window.Document.SaveAs("c:\q.vsd");
//    form1.DrawingControl1.Window.Shape.Shapes.CenterDrawing;
end;

procedure TForm1.Button2Click(Sender: TObject);

var f : IVUIObject;
Visio : IVApplication;
h : HWND;
begin

//f.ToolbarSets.Add.Toolbars;
//Get_BuiltInToolbars();
//form1.DrawingControl1.Window.Document
//Visio.Documents.Open("Drawing1.vsd");
//form1.DrawingControl1.Window.Application.Documents.Open("c:\Drawing1.vsd");
//DrawingControl1.Window.Application.Documents.Open("c:\Drawing1.vsd");

//form1.DrawingControl1.Document.Open("c:\Drawing1.vsd");

//Visio :=  CreateComObject(IID_IDrawingControl) as IVApplication;
//Visio.Application.Documents.OpenEx("Drawing1.vsd")
//form1.DrawingControl1.Window.Document.Application

//form1.DrawingControl1.Window.Document.SetCustomToolbars(f);
//form1.DrawingControl1.Document.DocumentSheet.DrawRectangle(12,12,12,12);
//form1.DrawingControl1.Window.Document.DocumentSheet.DrawRectangle(12,12,12,12);
end;

Из всего работает тока сохранение ))) И то не знаю правильно или нет )))
...
вот если кому интресно Visio_TLB и в VisOcx_TLB

http://alex-shad.narod.ru/temp/Visio_TLB.pas
http://alex-shad.narod.ru/temp/VisOcx_TLB.pas


 
T54 ©   (2006-10-23 11:44) [4]

Разобрался с Visio (тоже стоит такой вопрос) ? если разобрался скажи как работал ?


 
-Ven- ©   (2006-10-23 13:23) [5]

Ох, и геморное это дело юзать Visio 2003 под Дельфи. Я на это убил кучу времени и до сих пор с этим вожусь (по работе нужно). Разобрался очень со многим, но многое осталось не ясным (надеюсь пока что). Самое фиговое, что сам компонент еще довольно сырой. В общем если спрашивайте, если я с этим разобрался, отвечу. По поводу текущих вопросов:
1) Как открыть документ:
  что бы создать документ, нужно просто сделать следующее
  VisioDrawingControl.Src := "";
  что бы открыть уже созданный документ
  VisioDrawingControl.Src := FileName; //где FileName это полный путь к созданному файлу

2) Как повытаскивать панели инструментов:
   Стенсилы (панельки с набором шаблонов) открываются из файлов (расширение vss) следующим образом
   try
     Doc:= DrawingControl.Document.Application.Documents.OpenEx("c:\tmp.vss",visOpenDocked) ;
   except
     Doc:= DrawingControl.Document.Application.Documents.AddEx("c:\tmp.vss", visMSDefault, visAddDocked, 0);
   end;
   Doc.Title := "bla bla bla";

   Тут дело в том, что OpenEx открывает файл и блокирует его, но если этот файл уже заблокирован, то выкидывается эксептион, и поэтому вызывается функция AddEx. Которая открывает копию шаблонов. В принципе можно сразу использовать эту функцию, но тут есть огромный недостаток. При открытии шаблонов таким образом, компонент открывает их в режиме редактирования (т.е. можно на панель шаблоно перетащить какой нибудь элемент и эту панель сохранить в другой файл). Как это запретить я не разобрался :(

   Еще из полезных инструментов можно вызвать панель Pan & Zoom
   VisioDrawingControl.Window.Windows.ItemFromID[visWinIDPanZoom].Visible:= true;
   Таким же образом можно открыть еще несколько панелей, указав другие константы вместо visWinIDPanZoom (см. описание констант в Visio_TLB.pas)


 
cerber   (2006-10-25 23:12) [6]

Посмотри пример в \examples\activex,попробуй чере OLE-контейнер.
Панель должна сама появиться при вызове(активизации) содержимого контейнера. Но не забудь добавить toolbar и сделать MDI форму.
Кстати с контейнером очень редко возникают ексепшен - только с кривыми Актив-Икс объектами



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

Форум: "Corba";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
15-1255113419
KilkennyCat
2009-10-09 22:36
2009.12.13
Непонятно, вечный двигатель?


2-1256123784
defen
2009-10-21 15:16
2009.12.13
тсключение EDBEngineError


15-1255699290
ocean
2009-10-16 17:21
2009.12.13
Посоветуйте бесплатный antispy для windows 2003 server?


2-1256239573
Nucer
2009-10-22 23:26
2009.12.13
Передача ссылки на объект в SendMessage


15-1255638608
Юрий
2009-10-16 00:30
2009.12.13
С днем рождения ! 16 октября 2009 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский