Hi !
Ich denke du wirst das von Excel / Word aus (VBA) steuern müssen, indem du auf das Ereignis Close reagierst.
VBACode:
Delphi-Quellcode:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call MsgBox(ActiveWorkbook.FullName, vbInformation + vbOKOnly)
End Sub
Die Verbindung zu deinem Programm realisierst du mit einem Klassenmodul.
VBACode:
Delphi-Quellcode:
Option Explicit
Private FDataEngine As Object
Private Sub Class_Initialize()
On Error GoTo error
If Remote Then
Set FDataEngine = CreateObject("DataEngine.Engine", RCName)
Else
Set FDataEngine = CreateObject("DataEngine.Engine")
End If
Exit Sub
error:
Call MsgBox("Kann ""DataEngine"" nicht starten", vbCritical, "DataEngine")
Resume Next
End Sub
Private Sub Class_Terminate()
Set FDataEngine = Nothing
End Sub
Public Function RegisterFilename(aFilename As String) As Boolean
RegisterFilename= FDataEngine.RegisterFilename(aFilename )
End Function
Deim Prog muss ein ComServer sein (TypeLibrary hinzufügen), die Funktionen (hier RegisterFilename) muss dein Prog
in der TypeLibrary zur Verfügung stellen.
PS: 'Remote' und 'RCName' sind Globale Konstante (in einem anderen VBA Modul definiert), damit ich leichter steuern kann wo meine Serveranwendung gestartet wird.
VBACode:
Delphi-Quellcode:
Public Const Remote = False
Public Const RCName = "Server"
Tja, und jetzt beginnt die Arbeit in Delphi !