![]() |
Tobit DvISE Programmierung
Hallo Leute
Ich habe ein großes Problem. Kennt sich jemand mit Tobit DvISE API Programmierung aus? Ich komme zwar gut zurecht, aber ich habe Probleme mit dem FaxItem Objekt. Und zwar muss ich die Absender Fax Nummer auslesen. Über Visual C# geht das so oFaxItem.Field("SRFrom").Value. In der Dokkumentation der API wird der Zugriff auf Fields zu beschrieben. Zitat:
Delphi-Quellcode:
Dann bekomme ich den Fehler nach Fields "Operator oder Semikolon fehlt."
...
oApp := CreateOLEObject('DVOBJAPILIB.DvISEAPI') as IApplication; oAccount := oApp.Logon(Unassigned, Unassigned, Unassigned, Unassigned, Unassigned, 'AUTH'); oArchive := OAccount.GetArchive(archiv); oMessageItems := oArchive.FaxItems; ... for m := 0 to oMessageItems.Count-1 do begin oFaxItem := oMessageItems.Item(m) as FaxItem; AbsenderFax := oFaxItem.Fields('SRFROM'); end; ... Also wenn jemand Ahnung hat, oder mir sonst irgendwie helfen kann, wäre ich wirklich sehr sehr dankbar! Danke Peter [edit=SirThornberry]Titel geändert - Das du Hilfe benötigst sagt bereits das gewählte Forum aus und ob du die Hilfe dringend brauchst oder nicht beschreibt das Problem ja nicht wozu aber der Titel da ist - Mfg, SirThornberry[/edit] |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Delphi-Quellcode:
AbsenderFax := oFaxItem.Fields['SRFrom'].Value; // 'SRFrom' in gemischter GROSS/kleinschreibung, könnte wichtig sein
|
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Hallo sx2008!
Danke für deine schnelle Antwort. Leider funktioniert dein Code nicht, bekomme erstmal wieder Stress mit .Value. Delphi sagt dazu "Klasse besitzt keine Standardeigenschaft". Wenn ich es weglasse, dann meckert er wieder hier oFaxItem.Fields['SRFrom']; "Operator oder Semikolon fehlt." Werde aus dem was in der Doku steht einfach nicht schlau. |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Ok, Doku könnte fehlerhaft sein.
Im Delphi-Menu Projekt->Typbibiothek importieren... klicken. Es erscheint eine umfangreiche Liste. Jetzt musst du die Tobit Software auswählen; dabei kann ich ich dir nicht helfen; weiss nicht wie die TLB heisst. Dann auf Unit erstellen klicken und die erzeugte Datei xxxxx_TLB.pas (...\Imports Verzeichnis) suchen und in dieses Forum als Anhang hochladen. In dieser Datei sind dann alle Methoden enthalten, die die Tobit Software anbietet. |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo nochmal sx2008!
Das ist wirklich sehr nett von dir, das du mir hilfst. Ich weiß das sehr zu schätzen. Im Anhang also die PASCAL Datei. Vielleicht wirst du daraus schlau. Gruß, Peter und danke nochmals! |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Hallo DelphiPeter,
in deiner TLB ist für Field fogendes definiert:
Delphi-Quellcode:
Somit sollte ein Aufruf mit
Field = interface(IDispatch)
['{2211A2D2-7250-474A-9DE2-6DE1D63D622A}'] function Get_Parent: IDispatch; safecall; function Get_Account: Account; safecall; function Get_Value: OleVariant; safecall; procedure Set_Value(pvValue: OleVariant); safecall; function Get_Name: WideString; safecall; property Parent: IDispatch read Get_Parent; property Account: Account read Get_Account; property Value: OleVariant read Get_Value write Set_Value; property Name: WideString read Get_Name; end;
Delphi-Quellcode:
korrekt sein. Wenn ich da nicht falsch liege sollte dein Fehler an einer anderen Stelle liegen. Leider kann ich dir aber auch nicht sagen wo.
AbsenderFax := oFaxItem.Fields['SRFrom'].Value;
Gruß oki |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Oki,
also es ist nicht zu fassen, es funktioniert einfach nicht... Wie kann das denn bloß sein? Vielleicht weil ich den Wert von Value keiner String Variable zuordnen kann, oder so? Aber zu was soll ich es sonst zuordnen? Hmm.. |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Ich habe jetzt mit dem Namen "FaxItems" in der TLB.pas gesucht.
Man findest, dass dieses Property ein Inteface namens "MessageItems" zurückliefert.
Delphi-Quellcode:
Es wird also ein Objekt "MessageItem" aus der Liste geliefert.
MessageItems = interface(IDispatch)
['{2A2E9B58-B2F9-49DA-B302-DC0402376CEB}'] function Item(vIndex: OleVariant): MessageItem; safecall; // <== function Get__NewEnum: IUnknown; safecall; function Get_Count: Integer; safecall; function Get_Parent: IDispatch; safecall; function Get_Account: Account; safecall; property _NewEnum: IUnknown read Get__NewEnum; property Count: Integer read Get_Count; property Parent: IDispatch read Get_Parent; property Account: Account read Get_Account; end; Es wird aber auch das Interface "FaxItem" untersützt:
Delphi-Quellcode:
Und dort finden wir auch das Property "Fields". Es hat den Typ IDispatch, kann aber auch in folgendes Interface verwandelt werden:
FaxItem = interface(MessageItem)
['{20F310C8-AD57-4F8C-AE04-15233E09F95B}'] function Get_To_: WideString; safecall; function Get_PageCount: Integer; safecall; function Get_Image: OleVariant; safecall; function Get_Fields: IDispatch; safecall; procedure Copy(const pArchive: Archive); safecall; procedure Move(const pArchive: Archive); safecall; property To_: WideString read Get_To_; property PageCount: Integer read Get_PageCount; property Image: OleVariant read Get_Image; property Fields: IDispatch read Get_Fields; // <== end;
Delphi-Quellcode:
Damit sähe dein Code so aus:
Fields = interface(IDispatch)
['{2B059336-EE52-4273-B79A-6FC1AE82A896}'] function Item(vIndex: OleVariant): Field; safecall; function Get__NewEnum: IUnknown; safecall; function Get_Count: Integer; safecall; function Get_Parent: IDispatch; safecall; function Get_Account: Account; safecall; function GetText(ID: Integer): WideString; safecall; function Get_UserFields: IUserFields; safecall; property _NewEnum: IUnknown read Get__NewEnum; property Count: Integer read Get_Count; property Parent: IDispatch read Get_Parent; property Account: Account read Get_Account; property UserFields: IUserFields read Get_UserFields; end;
Delphi-Quellcode:
var
felder : Fields; begin ... for m := 0 to oMessageItems.Count-1 do begin oFaxItem := oMessageItems.Item(m) as FaxItem; felder := oFaxItem.Fields as Fields; AbsenderFax := felder.Item('SRFROM'); end; |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Moin,
Zitat:
Gruß oki |
Re: Brauche dringend Hilfe zu Tobit DvISE Programmierung
Ach übriegens, an der Zuweisung an eine Stringvariable sollte es nicht liegen. Der Compiler meckert bei einem Aufruf ja darüber, dass keine Standardeigenschaften vorliegen. Somit sollte etwas mit der Typzuweisung nicht stimmen. Er scheint hier die Eigenschaft Value nicht zu finden. Ist der Typ von Field erst mal richtig zugewiesen, dann sollte Value und String nicht mehr das Problem sein, da Value in Field als Varianter Typ definiert ist.
Gruß oki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz