Test Mapi

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Statler
UDF-Programmierer
UDF-Programmierer
Beiträge: 87
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Test Mapi

Beitrag von Statler » Di, 03. Apr 2018 11:28

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

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13141
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Test Mapi

Beitrag von Jan » Di, 03. Apr 2018 11:40

Woher kommt das Beispiel?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Statler
UDF-Programmierer
UDF-Programmierer
Beiträge: 87
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler » Di, 03. Apr 2018 11:49

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

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13141
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Test Mapi

Beitrag von Jan » Di, 03. Apr 2018 12:16

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh » Di, 03. Apr 2018 13:16

Code: Alles auswählen

result:= @kernel32:GetCurrentDirectoryW (0,0)
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.
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh » Di, 03. Apr 2018 13:53

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)
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh » Di, 03. Apr 2018 14:04

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
Gruß
Hubert

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 14548
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Test Mapi

Beitrag von Martin Altmann » Di, 03. Apr 2018 14:11

Aber nur bei local-Variablen :!:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Statler
UDF-Programmierer
UDF-Programmierer
Beiträge: 87
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler » Di, 03. Apr 2018 14:18

Mein Post bezuwglich der Rundungsdifferenzen ist in den falschen thread geraten. Ich kann den vermutlich nicht verschieben ?

gruss

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh » Di, 03. Apr 2018 14:26

wir können ;-)

Ich hab den Beitrag zu den Rundungsfehlern verschoben.

PS: Danke Martin, hatte ich vergessen, da ich eigentlich nur mit Local arbeite
Gruß
Hubert

Statler
UDF-Programmierer
UDF-Programmierer
Beiträge: 87
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler » Di, 03. Apr 2018 22:56

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11515
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Test Mapi

Beitrag von AUGE_OHR » Mi, 04. Apr 2018 0:10

Statler hat geschrieben:
Di, 03. Apr 2018 11:28

Code: Alles auswählen

result:= @kernel32:GetCurrentDirectoryW (0,0)
ja das ist Pablos Syntax.

zunächst kommt @ mit dem DLL Namen also @kernel32
danach kommt dann der API Function Name mit den Parametern

Code: Alles auswählen

:GetCurrentDirectoryW (0,0)
Statler hat geschrieben:

Code: Alles auswählen

nf := nOr(nf,0x1000)
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)
gruss by OHR
Jimmy

Statler
UDF-Programmierer
UDF-Programmierer
Beiträge: 87
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler » Mi, 04. Apr 2018 8:52

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

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh » Mi, 04. Apr 2018 9:10

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.
Gruß
Hubert

Antworten