Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Запуск T-FLEX Viewer
 
Для Delphi. Функция CreateOleObject(TFW32.SERVER) запускает T-FLEX CAD. Все отлично запускается и работает.
Вопрос такой. Каким образом программно запустить T-FLEX Viewer? Т.е. чтобы вместо T-FLEX CAD запускался Viewer.
Спасибо за помощь.
 
Как вариант - чезез API... на основе использования технологии .NET. (См. подробнее Руководство по OpenAPI). И для работы Ваших API-приложений потребуется ключ защиты T-Flex Cad.
Год назад в отделе была решена одна задача - связь БД ОАСУП с T-Flex Cad через ActiveX. Программа была написана на Delphi.
Но по совету разработчиков T-Flex Cad в этом году решили переписать ее под .NET на С# 2005. Выполняемый файл копируется в папку T-FLEX Viewer.
Вы создаете свою форму, подключаете к ней Control от T-Flex и используете функционал системы в своем приложении.
 
А можно привести код. А то я когда ставлю ReadOnly у документа T-FLEX мне ничего не дает создать ;(
 
Вот, что советуют разработчики:

public partial class Form1 : Form
{
public Form1()
{
//Перед работой с API T-FLEX CAD необходимо
//произвести правильную инициализацию.
//Иначе не будут работать макросы, диалог переменных и
//сохранение файлов.
//В зависимости от параметров инициализации, будут или не будут
//доступны функции изменения документов и сохранение документов
//в файл.
//За это отвечает параметр setup.ReadOnly.
//Если setup.ReadOnly = false, то для работы программы требуется
//лицензия на сам T-FLEX CAD (ключ аппаратной защиты)

ApplicationSessionSetup SessionSetup = new ApplicationSessionSetup();
SessionSetup.EnableMacros = true;
SessionSetup.ReadOnly = false;
SessionSetup.PromptToSaveModifiedDocuments = false;
SessionSetup.Enable3D = true;
TFlex.Application.InitSession(SessionSetup);
InitializeComponent();
}
}

На сайте http://www.tflex-nord.narod.ru сегодня создал раздел по API. Туда выложил примерчик. В этот пример вошла и Ваша "Таблица".
 
Добавлю тогда еще свои пять копеек.
Плагин для вызова макросов через панель инструментов или из меню "Сервис"
 
"Как вариант через API". Это может и хороший вариант, но как его реализовать? Руководство по OpenAPI посмотрел, но там примеры для C# и C++. И нет информации, как произвести инициализацию модуля T-Flex для Delphi. Вопрос то незря такой задал. Дело в том, что даже когда подключаешь библиотеку TFW32.TLB, то в качестве сервера выступает сервер T-Flex CAD и все функции заточены под использование его в качестве сервера. А необходимо (как я уже спрашивал в вопросе) создать сервер T-FLEX Viewer.
Как вариант, создать сервер T-Flex CAD, определить его параметры и с помощью каких либо функций передать их в T-FLEX Viewer, чтобы он выступал в качестве сервера приложения. И как это сделать?
 
Цитата
roand пишет:

Добавлю тогда еще свои пять копеек. Плагин для вызова макросов через панель инструментов или из меню "Сервис"
Не смог запустить под 11-й версией.
 
Я использую вот такой вот модуль в access для просмотра в форме jpg рисунков. Чертежи конвертирую в jpg и в принципе нормально. Но хотелось бы так смотреть t-flex документы.
Может кто подскажет как изменить модуль
Код
Attribute VB_Name = "mdl_Image"
Option Compare Database
Option Explicit

Private Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWDEFAULT = 10
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOWNORMAL = 1

'Открыть файл в родном приложении
Function StartOfFile(ByVal strNameFile As String) As Long
Dim intResult As Integer
Dim TypeFile As String
    
    intResult = ShellExecute(Application.hWndAccessApp, "open", strNameFile, 0, 0, SW_SHOWNORMAL)
    Select Case intResult
        Case 31
            'Незарегистрированный тип файла
            Call Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " & strNameFile, vbNormalFocus)
        Case 2
            'Файл не найден
            MsgBox "Файл не найден!", vbCritical, "admin"
    End Select
    StartOfFile = intResult
End Function

' Диалог открытия файла
Function fOpenFileDialog(strTitle As String, strFolder As String, strFilter As String) As String
On Error GoTo Err_

Dim strFile As String

    WizHook.Key = 51488399
    WizHook.GetFileName 0, "AppName", strTitle, "", strFile, strFolder, strFilter, 0, 0, 0, True
    fOpenFileDialog = strFile
Exit Function

Err_:
    Err.Clear
    MsgBox Err.Description
End Function

Function funImageClick(ByVal ctlImage As Image)
    If Nz(ctlImage.Picture, "") <> "" Then
        Call StartOfFile(ctlImage.Picture)
    End If
End Function

'удалить ссылку на текущий рисунок
Function funClearImage(ByVal ctlImage As Image, ByVal ctlTextBox As TextBox)
On Error Resume Next

    ctlTextBox = ""
    ctlImage.Picture = ""
    
End Function

'диалоговое окно выбора рисунка
Function funGetImage(ByVal ctlImage As Image, ByVal ctlTextBox As TextBox)
On Error GoTo Err_

Dim s As String, flsName As String
Dim strPathImage As String

    strPathImage = CurrentProject.Path & "\image"

    s = fOpenFileDialog("Выберите фотографию", strPathImage, "Точечный рисунок (*.jpg)|JPEG")
    If s <> "" Then
        flsName = Split(s, "\")(UBound(Split(s, "\")))
        ctlTextBox = flsName
        Call funImageCurrent(ctlImage, ctlTextBox)
    End If
Exit Function

Err_:
    Err.Clear
    MsgBox Err.Description
    ctlImage.Picture = ""
End Function

'отображение рисунка при текущей записи
Function funImageCurrent(ByVal ctlImage As Image, ByVal ctlTextBox As TextBox)
On Error GoTo Err_
    
Dim strPathImage As String

    strPathImage = CurrentProject.Path & "\image\"

    If IsNull(ctlTextBox) Or ctlTextBox = "" Then
        ctlImage.Picture = ""
    Else
        If Dir(strPathImage & ctlTextBox) <> "" Then
            ctlImage.Picture = strPathImage & ctlTextBox
        Else
            ctlImage.Picture = ""
        End If
    End If
Exit Function

Err_:
    Err.Clear
    MsgBox Err.Description
    ctlImage.Picture = ""
End Function
Страницы: 1