Jump to content

Clément

Members
  • Content Count

    365
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Clément

  1. Hi, I will start a new project with Delphi Rio and ICS 8.62. I will send and receive JSON objects and I don't need to return HTML pages, at least not for the first release. Is ThttpAppSrv Ok to use for REST only , or should I use THttpSrv instead ( I might need to use SSL ). I want to build a windows service to handle my REST requests. Is there a sample I can take a look? TIA, Clément
  2. Wow! I will take a look. Thanks a lot.
  3. Clément

    Payment - Monetization - Good international PSP

    Thanks! I will have a look. I wrote my store in Delphi, it's easy to incorporate new providers. The problem is the other way around. Would the provider want to work with me? (Ingenico never reply my emails) I guess my transaction volume scared them! 😋
  4. Clément

    Payment - Monetization - Good international PSP

    Nothing is basic in my country (Take Amazon Rain Forest as the latest example) There's a lot of thing this administration must do, or else.... Anyway, selling worldwide shows how confident I am with solving our basic administration problems in a foreseeable future
  5. Clément

    Payment - Monetization - Good international PSP

    Major card is a must for me too. I released my application (VCL) with an embedded shopping cart that is powered by Stripe and Paypal. Both offers major cards and local payment methods. All purchases will end up in my business Stripe or Paypal account. Still have to see how I will handle receipts. Brazil is known as the country with most entangled taxes, so one can only hope that working with other countries will be easier.
  6. Clément

    The Embarcadero GetIt server could not be reached...

    Hi, Have you tried the new patches? http://blog.marcocantu.com/blog/2019-august-more-patches-update-getit.html HTH, Clément
  7. Clément

    August 2019 Roadmap released

    If those are included, 10.4 would be groundbreaking change! But to be honest lambda expressions and ternary operators will never happen. (Now someone from EMB. should reply to never say never 😋)
  8. Hi, Lately I've been using a lot more $IFDEF than I use to. And modifying code in the wrong block is what worries me, since there's no difference between active and unactive block. For example: {$IFDEF USE_FEATURE} { .. procedures and functions using a feature } {$else} { .. procedures and functions not using this feature } {$endif} USE_FEATURE might be defined as a project conditional define or in an included unit.( that really depends on the project) Anyway, I would like to know if there is an extension that would use syntax highlight in the {$IFDEF} block when USE_FEATURE is defined, fade the {$ELSE} block, and of course if USE_FEATURE is not defined, the $ELSE block would be colorful and $IFDEF block grayed out. TIA,
  9. {$IFDEF} doesn't have code folding per se. I need to do some extra writing: {$IFDEF USE_FEATURE} {$REGION "USE_FEATURE"} // changes in methods to use feature(s) {$ENDREGION} {$ELSE} {$REGION "NO_FEATURE"} // Original code {$ENDREGION} {$ENDIF} Even so, this will not beat a fancy parser.
  10. Not an easy job, but would be very useful. Let's see what LSP will bring, and decisions shall be made.
  11. But Andreas Hausladen has his way to find and fix the IDE. Who's to tell how to boost the IDE? EMB is focused on quality, stability and performance, but they have deadlines and investors to deal with. When an IDE fix is required, EMB would take months to test everything (as it should), but Andreas can do it over a free weekend. If Andreas has the time (and is willing )to patch the IDE, let him patch it. And later EMB can implement / fix such features. The same goes with FastCode project. Today most of that work is integrated. But who's to say there's nothing more to optimize? ( I really miss the ASM newsgroup and their fight over bits, bytes, cycles and benchmarks!) Anyway, I would vote for Andreas own copy/subscriptions. IDEs from D7 up to Tokyo are still using it! (BTW if someone is not using IDE Fix pack from those older IDEs: You are wasting time... Literally )
  12. Hard to tell. Marco said they've implemented the "safest" IDE Fix pack features in the IDE.
  13. Hi, I always tried to use the right type for the job, but there's a certain type construction that when used properly is just great. Since this type construct uses pointers, I'm afraid it might die as pointers are evil (by some, I just can't imagine coding without them) and might get removed at some point. Is there a better way to handle this construct? function DoSomething( const Data; const DataSize : Cardinal ) : TBytes; type PUInt64Array = ^TUInt64Array; TUInt64Array = array[0..MaxInt div 16] of UInt64; var {...}; begin {.. some code ..} n := HashBlockSize div SizeOf(UInt64); for i := 0 to n-1 do begin PUInt64Array(@oString[0])[i] := PUInt64Array(@oString[0])[i] xor UInt64($5c5c5c5c5c5c5c5c); PUInt64Array(@iString[0])[i] := PUInt64Array(@iString[0])[i] xor UInt64($3636363636363636); end; {.. some more code .. } end; I'm using such construct as a helper for a HMAC_SHA256 implementation, and it works great. Do you consider it a smelly code? Is there a better way to reproduce without pointers? TIA, Clément
  14. Clément

    What options do I have to control custom releases?

    Hi, There are a few options. Depending on your project, one might be a better choice than the other. (no particular order) 1) Use IFDEF. If you have a centralized unit where all those options are assigned, you can create in project manager a Release Customer A, Release Customer B,... , etc. In each project configuration option, you should add a conditional define such as __CUSTOMER_A__, __CUSTOMER_B__, ...etc. Your unit(s) will get a bunch of $IFDEFs : // control Main Menus {$IFDEF __CUSTOMER_A_} EnableVisioMenu := false;{$ENDIF} // Customer A {$IFDEF __CUSTOMER_B_} EnableDrawingMenu := false;{$ENDIF} // Customer B // control PopupMenu options EnableCntxt_ImportFromVision := {$IFNDEF __CUSTOMER_C} false {$ELSE} true{$ENDIF}; // ??? ... As you can see, the more customers you get, the more difficult it will be to maintain such spaghetti, but it gets the job done. 2) Use an encrypted external configuration file The file gets constructed according to each customer, the executable remains the same. The only difference is the config file. When you deliver your application, this file goes together. If you absolutely need to keep things in one file, you might consider generating a resource file (.RC) that will be included with your executable. Be aware that some anti-virus might show false positives. The file itself can be very simple, such as an INI file. As long as it's encrypted, it will do it's job. 3) More sophisticated license manager that will allow to handle properly many customers.
  15. Given the scenario, wouldn't it be better to skip 10.3.2 and go straight to 10.4? I suppose the necessary workforce spent to release an updated such as 10.3.2, could be used to make 10.4 time to market shorter. I guess most of us understand the difficulties Delphi is trying to get out of (a lot of bugs and bugossaurs must be dealt with while keeping up with a very dynamic market). I wouldn't mind skipping 10.3.2 if that would allow a more stable and anticipated 10.4 release. To be honest, if both releases are so close to each other, I would probably wait to install 10.4 anyway, since I need at least a week to proper test a Delphi version before migration.
  16. Hi Mark, Have you to set USE_SSL and NOFORMS in your project conditional defines?
  17. Clément

    Best delphi so far?

    In fact we need more stablity/perfomance/quality. I use Delphi Rio and the IDE is slow, not as stable as prior versions, I have to fight the debugger most of the time I'm debugging, especially with win64 projects but also there's far more features in Rio than any prior IDE. Not to mention a lot more compilers / platforms / bitness combination factor. EMB code is getting more and more organized, there's a lot of serious work done and I guess that Rio will improve much more with the next update. Your question don't have a direct answer. Each will report a different IDE (as you saw). What saved most of the "older" IDE is IDEFixPack. An amazing job that changed the experience and impressions of older IDEs. If you think delphi XE is stable, using it with IDEFixpack will make the IDE faster and more stable. That's true with almost every IDE that came before Rio.
  18. For this project I must use Delphi XE. Unfortunately most free implementation are not fast enough and/or depends on DLLs.
  19. Clément

    Payment - Monetization - Good international PSP

    @Georgge and @mjustin Thanks for the direction. I'm checking a few (including Stripe) and I will include BlueSnap too. There are a lot of options! Clément
  20. I always used Indy and ICS. Both are great, but both requires extra DLL (OpenSSL) if you need to use https. Each version might required a different OpenSSL DLL version, so mixing both (indy and ICS) will lead to a bucket of inconsistent smelly stuff. In my latest project I was asked to implement a REST client that must access HTTPS URL. I used TNetHTTPClient very successfully. It is very fast and works https without extra DLL. All I had to do was to assign the proper header and voilá! POST, GET, PUT et al with https support. A single component to the rescue.! I tried the TRestClient component family but they seemed to be over complicated ( I just ruled them out )
  21. If I may..... Can you use an Interface instead? For example: type IHasSQLSupport = Interface ['{E38C927E-019E-423C-A0C3-5C65A836D0C7}'] procedure AssignSQL( const aSQL : string ); End; TOracleDataset = class (...., IHasSQLSupport) // implements IHasSQLSupport procedure AssignSQL( const aSQL : string ); end; TPgQuery = class ( ..., IHasSQLSupport ) // implements IHasSQLSupport procedure AssignSQL( const aSQL : string ); end; TForm72 = class(TForm) private { Private declarations } procedure Myfunc( aQry : IHasSQLSupport ); public { Public declarations } end; implementation procedure TForm72.Myfunc(aQry: IHasSQLSupport; const aSQL : string); begin aQry.AssignSQL(aSQL); end; As long as SomeDataset is TOracleDataset or TpgQuery, you can call it as MyFunc( SomeDataset, aSQL ); SomeDataset.Open; This way you could also implement transaction support, autoinc support etc...
  22. Clément

    10.3.1 has been released

    Yeap. It's happening also here.
  23. Clément

    Hands-On Design Patterns with Delphi

    Got mine too! Nice
  24. Clément

    Dragging a control with $F012

    Hello, I just hit a wall in my "Delphi Rio .1" project. I'm placing a few objects (TImage) on a Surface (TPaintBox) and when the mouse is over a TImage I wrote a routine to create a panel, move the TImage to this panel, send a Perform(WM_SYS_COMMAND, $F012, 0 ) and all is working beautifully! But I need to place Guidlines, similar to those in paint applications where an horizontal line and vertical line meet at the cursor position. Those guidelines will help the user align the controls in the surface. Once the perform message is sent ($F012), I no longer found a way to track the mouse position to display my guidelines. The lines just vanish for the duration of the drag and reappear when the drag is done. To illustrate I attached 3 images. The first one is the arrival, the second is just before dragging and the third is dragging. Is there anyway to solve this issue using $F012, or should I find another way to drag without any flicker TIA
×