Seite 1 von 1
Test Mapi
Verfasst: Di, 03. Apr 2018 11:28
von Statler
Hallo zusammen,
ich habe gerade mal Test Mapi in Betrieb genommen. Hat auf Anhieb funktioniert und arbeitet mit Thunderbird zusammen.
ich habe mir mal den Code angeschaut, also die Klasse und die Include Datei. das ist schon recht komplex.
===================================================
result:= @kernel32:GetCurrentDirectoryW (0,0)
Dieser Syntax eines DLL-Aufrufes wird anscheinend in der Include Datei realisiert. So ganz verstanden habe ich das allerdings nicht
nf := nOr(nf,0x1000)
Diese Funktion NOR ist sehr praktisch. Ich habe allerdings nicht herausgefunden, wo sie definiert wurde. Steckt die vieleicht in der Lib drin ?
Gruss
Achim
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 11:40
von Jan
Woher kommt das Beispiel?
Jan
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 11:49
von Statler
das ist das Testmapi Tool
ot4xb_001_006_004_049.zip
TestMAPI.zip
Copyright (c) 2004 - 2017 Pablo Botella Navarro
mit dem Teil koennen eMails ueber den vorhandenen eMail Client incl. Anhaenge verschickt werden. Den Tipp fuer dieses Tool hatt ich dieses Jahr hier im Forum bekommen und bin aktuell dabei, es zu implementieren.
Gruss
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 12:16
von Jan
Da kann ich natürlich lange in den Alaska-Samples suchen. Woher soll ich wissen, daß das ot4xb ist?
Ich nehme also mal an, das die gesuchte NOR-Funktion damit auch in der ot4xb liegt.
Jan
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 13:16
von brandelh
für den, der die ot4xb kennt ist das eindeutig die Syntax von Pablo.
OT4XB Anleitung hat geschrieben:
Navigation: Reference > Functions By Category > Bitwise >
nOr() Performs a bitwise OR ( | ) operation betwen two or more 32 bit integers.
Syntax: nOr( <nInt1> , ..., <nIntN> )
der Name nOr() ist wohl die Abkürzung der XbToolsIII Funktion
NumOr()
in pur Xbase++ sollte
bor() das Gleiche sein.
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 13:53
von brandelh
bor() wie in dem Beispiel kann man verwenden, da ...
nWert := 12345
eine INTEGER Zahl im Speicher erzeugt.
Mit BOR() kann man dann eine Integermaske darüber legen und das Ergebnis wird 0 wenn die Bits falsch ergeben ...
Allerdings wird das meist mit DEFINE Konstanten verglichen ...
nf := nOr(nf,0x1000)
0x1000 => 1000 HEX (die Zahl nach 0FFF)
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 14:04
von brandelh
Neuerdings ( so ab der 1.90 wenn ich mich richtig entsinne) geht das auch direkt (Beispiel aus der Hilfe zu []):
Code: Alles auswählen
// This example shows how the index operator can be
// used with values of data type Numeric.
PROCEDURE Main
LOCAL n
? n := 6 // result: 6
? n[1] // result: .F. (bit for 2^0 not set)
? n[2] // result: .T. (bit for 2^1 is set)
? n[3] // result: .T. (bit for 2^2 is set)
n[1] := .T. // setting bit for 2^0
? n // result: 7
RETURN
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 14:11
von Martin Altmann
Aber nur bei local-Variablen
Viele Grüße,
Martin
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 14:18
von Statler
Mein Post bezuwglich der Rundungsdifferenzen ist in den falschen thread geraten. Ich kann den vermutlich nicht verschieben ?
gruss
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 14:26
von brandelh
wir können
Ich hab den Beitrag zu den Rundungsfehlern verschoben.
PS: Danke Martin, hatte ich vergessen, da ich eigentlich nur mit Local arbeite
Re: Test Mapi
Verfasst: Di, 03. Apr 2018 22:56
von Statler
Hallo Brandelh,
ich habe gerade die Anleitung zu ot4xb gefunden und heruntergeladen. Die ist anscheinend nicht Teil des Programm Paketes. Da steht alles drin.
Danke fuer den Hinweis.
Gruss
Re: Test Mapi
Verfasst: Mi, 04. Apr 2018 0:10
von AUGE_OHR
Statler hat geschrieben: ↑Di, 03. Apr 2018 11:28
ja das ist Pablos Syntax.
zunächst kommt @ mit dem DLL Namen also @kernel32
danach kommt dann der API Function Name mit den Parametern
wie Hubert schon sagte ist es das selbe wie bOR() womit man Konstanten "addiert" (getrennt durch Komma)
Code: Alles auswählen
nStyle := nOr(nStyle, BS_PUSHLIKE,BS_CENTER,BS_VCENTER)
Re: Test Mapi
Verfasst: Mi, 04. Apr 2018 8:52
von Statler
Hallo zusammen,
dieser oft unnoetige Zugriff auf Systhem-Dll's ist meiner Meinung nach nicht gut. Die meisten Dinge sind in Xbase bereits realisiert, man koennte Sie also einfach nutzen, und hat dann die Garantie, das die Sachen auch, unabhaengig vom Betriebssysthem, funktionieren.
Wenn schon DLl Zugriffe, dann sollte man die auch an zentraler Stelle sammeln und via Funktionsaufruf benutzen. Falls es mal Aerger geben sollte, kann dieser dann ueber einen zentralen Workaround beseitigt werden.
Ansonsten ist die Mapi Toolbox schon klasse und gehoert eigentlich in den Xbase Standart rein. Mails zu verschicken aus der Applikation heraus ist ja heutzutage nicht gerade exotisch. Das lokale eMail Programm zu nutzen ist meiner Meinung nach wesentlich besser als via SMTP-Zugriff zu kommunizieren. Fuer den Anwender ist das zudem transparent, da er sieht, was rausgegangen ist.
Gruss
Re: Test Mapi
Verfasst: Mi, 04. Apr 2018 9:10
von brandelh
System-APIs sind genau die Teile, die M$ vorgesehen hat
Die allermeisten Xbase++ Befehle nutzen direkt die System-APIs (intern).
Für andere Zwecke braucht man andere DLLs (Excel Dateien ohne Excel, PDF verwalten etc.),
ob man dann die Syntax von Pablo im Quellcode streut oder lieber eigene Funktionen oder Klassen schreibt (wie ich)
hängt vom Geschmack ab. Pablo nutzt das so wie es unter C üblich ist, ich mag es lieber einfacher
Insoweit stimme ich dir zu ist es für uns besser alles thematisch zu sammeln.