[Excel] OLEObject und die Ereignisse
19.02.2004 11:15:53
neolithos
Doch leider will es mit nicht gelingen die Ereignisse abzufangen.
Da habe ich folgenden Test versucht:
Kann mir jemand erkläaren warum es zu einem Laufzeitfehler kommt???
Code:
Private withevents t As OLEObject
Private Sub cmdTest_Click()
Set t = Tabelle1.OLEObjects("cmdTest") ' <- Fehler: Ohne WithEvents klappt es
End Sub
Private Sub cmdTest_LostFocus()
MsgBox "test"
End Sub
Private Sub t_LostFocus()
MsgBox "test 2"
End Sub
In VBA-Code in einer Excel-Tabelle. Auf dieser Tabelle befindet sich ein CommandButton namens cmdTest.
Scharfes Programm:
Delphi:
IID = '{00024410-0000-0000-C000-000000000046}'
Source steht ein _OLEObject
procedure InterfaceConnect(const Source: IUnknown; const IID: TIID;
const Sink: IUnknown; var Connection: Longint);
var
CPC: IConnectionPointContainer;
CP: IConnectionPoint;
begin
Connection := 0;
if Succeeded(Source.QueryInterface(IConnectionPointContainer, CPC)) then
if Succeeded(CPC.FindConnectionPoint(IID, CP)) then // <- Hier schlägt es Fehl Warum?
CP.Advise(Sink, Connection);
end;