Jump to content

Dany Marmur

Members
  • Content Count

    839
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Dany Marmur

  1. Dany Marmur

    Any good replacement for Indy email?

    Can't say when i first saw it. 2002 was the first very very specific implementation with OL app server side (sic). Ah, of course! The interface "we" write is so much simpler (or "to the point") compared to trying to import the whole EWS. Brilliant! Thank you, this was useful to me! It looks utterly incomplete compared to EWS. My two clients (soon to be only one, hoooray) with this implemented want my system to export "distribution lists" to Exchange and keep them up to date. I cannot see (when i looked some ½ year ago) that possibility in MSGraph. Back when, the lists were a Outlook application function, it was stored binary in Exchange. So the first serious server side implementation was a lot of fiddling with the distlist binary format that was almost "undocumented". Then these function came to EWS, that is when i deployed it using AToZed. I cannot remember when i found out and reworked the deployment. @PiedSoftware, sorry for hogging you thread.
  2. Dany Marmur

    How do *you* test ?

    I am definitely like you. But first pen and paper! I start something, a unit, a class, whatever, get a bit fed up with the compile-run-test cycle, more so with GUI projects, create a test project and include the (now new unit) if i feel i will save time, some scaffolding will always be needed. Then when the structure and stuff starts to look like something, i go back to the "real life project" and finish up. This can go a couple of turns depending on the complexity of the specific thingies. My debug output often is a unit "global" procedure taking a string or two that i can assign the same way easily, regardless of other scaffolding. These test projects is nothing i save or reuse months later because the actual unit will have changed. If i did that it would be something TDD-like. Your colleagues approach make me nauseous. What with edge cases of arrays, range and overflow exceptions et. al. I would feel my code will have [untested] "holes" in it. Sometimes i even break out very simple stuff like SubStr(, , Pos() - 1) just to be sure it is full-proof.
  3. Dany Marmur

    Any good replacement for Indy email?

    While absolutely agreeing with both Davids above, i can say something about two alternatives; 1. Ararat Synapse. http://www.ararat.cz/synapse/doku.php/download F/OS. I have used it for different needs. What i like about this library is the source code. It is written in a very "intuitive" way in that you can easily follow what happens for example when switching to TLS. Thus it is easy to trace along and see exactly what request/answer (SMTP/POP are good examples) that fails. IMHO looking at the code is much easier than reading the RFCs. 2. /n software, IP Works. Rather/very expensive. If you use their Mail component, i would be surprised if such a problem even appear and if it does if they do not solve it pronto. HTH, /Dany
  4. Dany Marmur

    Any good replacement for Indy email?

    Interesting! I went exactly that way. It must have been 2002 that we had "Outlook App" on the server w OLE. Of course that did not work. Then i tried importing the EWS shemas directly into Delphi, i even evaluated RemObjects to no avail. Then dowloaded the SDK and VS Community and made a dll for Delphi. Works like a charm! I use AToZed CrossTalk. Did you fix integration some other way? EWS is old but very complete.
  5. Dany Marmur

    Any good replacement for Indy email?

    Free or very costly?
  6. In 10.4.x i have noticed that the first time i access a menu (and i always use Alt+Key) it takes so much time for the menu to show, that the next press (s for search for example) generates a keystroke. Then, often next time, the menu displays faster and the Alt+Key key works. Might be related (?) or similar in 11.x?
  7. Dany Marmur

    SQL date problem

    What are you on about "storing dates as strings"? OP said clearly it is a DateTime field in the Database. This is getting super-confused. The original "problem" was about selecting records from a table. The conversion from any type of [date]presentation should be answered as pertaining to the parameters of that query. The OP never asked about storing the records to be queried, that was patted down as i read it. I feel like a StackOverflow member now
  8. Dany Marmur

    SQL date problem

    I do not work with the same RDBMS, but, to confuse this thread even more... It is probably not noticeable but running the test value through a function will execute the function lots of times (if you do not have an expression index). The alternate, to test the timestamp in a BETWEEN or in or:ed >= and < , as above, would probably be more efficient (but that needs to be measured), look at the plan and the count result of table accesses.
  9. IMHO, "learning" a language and "learning" and environment, the latter is much much much more. When i first was confronted with the Java "environment" my takeout was "it takes longer to look up the correct java function than writing the function in Delphi (or Java, for that matter)".
  10. Dany Marmur

    enable/disable the internet connection?

    I did not understand that. Sry.
  11. Dany Marmur

    Parnassus Bookmarks for Delphi 11 Alexandria?

    One more, Parnassus bookmarks and navigator are brilliant.
  12. Dany Marmur

    enable/disable the internet connection?

    For Hyper-V: Untested (by me). The others have similar stuff.
  13. Dany Marmur

    Maximum static memory

    Yes, that it did. I was trying to be nice to KasOb and being to fast i neglected context completely. No i did not mean it like that, thank you for pointing that out. Apologies to all, and thank you, @Stefan Glienke.
  14. Dany Marmur

    PC Specs for Delphi??

    I want to remember that 3.1 and 95 was an actual application that was loaded with a MS-DOS script/.bat. But it was some time ago.
  15. Dany Marmur

    Menu captions with images are hard to read under Windows 11

    The bits byte!
  16. Dany Marmur

    Maximum static memory

    Delphi Praxis w/o Kas. Ob is useless. What happened @Kas Ob.?
  17. Dany Marmur

    Calling inherited in Destroy

    Should the compiler not simply optimize away any inherited calls if there is noting to execute? As a general discussion, calling or not calling inherited is a cool tool when you know what you are on about. But i think you all know that already.
  18. Dany Marmur

    Client Dataset Grouping

    Oh, i think you want a "repoting function" called "suppress repeated values". Most "report generators" comes with this functionality. DevExpress Quantum grid ($$$) has similar stuff in different ways (merge cells, grouping, et.al). Implementing it in a scrolling editable grid, i suspect, will not be very simple. Do you load the complete grid or do you need "GridMode" or "Cached Updates"? If you load all the grid data before displaying it, it should be easier to implement as you can check the actual data before painting. You could check (instead of Null et al) for equality. If previous record <> match then draw otherwise supress. I hope i did add confusion.
  19. Dany Marmur

    Delphi 11 TRestRequest Failure

    Ouch! Now KenR's concerns are not just entirely understandable. They have upgraded to sound advice 🙂
  20. Dany Marmur

    Delphi 11 TRestRequest Failure

    This is entirely understandable.
  21. Dany Marmur

    PC Specs for Delphi??

    Turn off all and every virus-scanning thingies during work! Sometimes it's scary how much faster stuff gets done. IDE/Compiler/installations write [big] exe files (and other "watched" stuff) so that is key. Darian, i have not tried that. A much better approach than turning stuff off. If i get the time i'll see if it gets me up to the same efficiency.
  22. Dany Marmur

    Menu captions with images are hard to read under Windows 11

    On more thing (out of already 1000) to keep track of that can bite. Sucks. I had an issue with /n software, they fixed it but "it did not make it to the next update". I did not know that (i was not informed) and it was an edge case thing, so i updated, deployed. Ouch! That bitted*! * "To bite" in past tense? Bote? Bitted! Erh... Butt? Butted?
  23. Dany Marmur

    Menu captions with images are hard to read under Windows 11

    The old "OwnerDraw" [not exactly the same as own draw, i know] concept and High DPI is a match made in hell. For High DPI any owner drawing should be avoided because there's always an old pixel calculation hiding somewhere in some of the ancestors. Control and responsibilities are broken. It was cool back in 3.1 but started to give some head aces as long back as W95. HighDPI nudged forward a complete rewrite for me (those should happen anyway and i was like 3 years behind anyway). I have not tried to update the app created using D2007, updated up to XE. It would suck. IAll the OwnerDraw routines and old tweaks to update... But i must say, with or without imagelist the readability decreased, IMHO. And aesthetically i do not like "shrunken" background markings. Looks "toy"-like.
  24. Dany Marmur

    General JSON question

    A lot of JSON libs filter out empty values and never writes those name-value pairs. When i built 0.5, 1.0 and 2.0 of my own REST "API" i liked that "style" because it can take the payload size down quite. In JS null and undefined are different values... kind of. So a null (part of JSON spec) would set the parsed object member to null while a missing name will set (or leave) any declared members "undefined". Since i know what to expect (more or less as it seems you do too) it is not a problem. Your approach above (the second code line) thus looks quite ok to me. I should also say that i mostly consume JSON in JS and not so much in Delphi (of course a lot of payloads are JSON, but when parsing a payload server-side i could just throw an exception as soon as any little thing is amiss). Regarding the details on TJSONObject and RTTI and all i have no ide, i use a dynamic JSON lib (no RTTI) and simply loop/recurse as needed, it is a "just tree" after all. Mainly array or object splits processing in two and the rest is recursive. HTH
  25. Dany Marmur

    Working with SVG in OpenXML SDK in Delphi

    AFAIR, check the written [Content_Types].xml for extra spaces, cr/lf not exactly matching. IIRC i compared byte-wise in EditPad and changed to Kluug XML that could write exactly like that. But it was a long time ago...
×