Jump to content

Carlos Tré

Members
  • Content Count

    42
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Carlos Tré

  1. Carlos Tré

    Delphi/FireDAC and Firebird 4

    Dear fellow programmers, Can anyone tell me if Firebird 4 is fully supported by Delphi/FireDAC? Back in July I read a post, in a Google groups stating that there not support. Yesterday I tried again and the story was the same. During a talk by Carlos Canty yesterday it seemed to me that there were people already using it in production, so I am a little bit confused here. Has FireDAC been updated to work with FB4? If yes, since which version? I'm on Delphi 10.4.2 and just waiting for things workwise to calm a bit to migrate to Delphi 11. Thanks in advance. Best regards, Carlos
  2. Carlos Tré

    Delphi/FireDAC and Firebird 4

    In a session about FireDAC Q&A I'd think that'd have been an easy one, after all Firebird 4 is here for at least 4 or 5 months. But now I'm peace with that, I'll have to wait for update 1 to rollout. Straying a bit off the topic, I watched a replay of you session and would like to thank you fir that, until then I wasn't aware of the DataSetAdapter for JSON. Not only for that, but your blog's article on Live Templates that led me an old article by Nick Hodges that was just what I've been looking for ages. I even suggested during Nick's session that he could write a book on the matter.
  3. Carlos Tré

    Delphi/FireDAC and Firebird 4

    But isn't it strange that they found the time to discuss "delphee" x "delpheye"? If there wasn't any time spent over such a silly dispute, I wouldn't have been do frustrated. Cheers, Carlos
  4. Carlos Tré

    Delphi/FireDAC and Firebird 4

    Thank you very much, Dmitry. Do you have am ETA for Update 1? Best regards. Carlos
  5. Carlos Tré

    Delphi/FireDAC and Firebird 4

    They preferred to answer questions on UniDAC, MySQL and, believe me, there were answers (yes, more than one) to delph-ee and delph-eye.
  6. Carlos Tré

    Delphi/FireDAC and Firebird 4

    Dear Lajos, Thank you very much for taking the time to help me, I really appreciated it. It seems hard to believe, but I've just asked the same question in DelphiCon's session on FireDAC Q&A and was completely ignored. It seems as if Embarcadero is not very keen on supporting Firebird. Best regards, Carlos
  7. Carlos Tré

    Using FDMemTable

    Hi @Himie Have you sorted this out already? Just out of curiosity I tested the code above in a FMX project, and it worked just fine - Delphi 10.4.2 Enterprise, Windows 10. I really can't tell why it wouldn't work in 10.3 Community ( but I'm no Delphi guru 🙂 ).
  8. Dear fellows, I'd like to change the format code action assignment to Ctrl+Alt+Shfit+F, because Ctrl+D is very easy to hit unintentionally. Based on articles I found ou there I was able to simply kill it, but now I need to simply reassign its hot key, and I am at a total loss here. I have a very vage remembrance of coming across sample code for OTAPI that was an actual keyboard mapping, it was quite a while ago , I'm not sure I really did. I took a wild guess from what found and tried The relevant section of wat I did so far is procedure TMelhoriasEditor.BindKeyboard(const BindingServices: IOTAKeyBindingServices); var LBindingRec : TKeyBindingRec; LFmtKeyBidingProc : TKeyBindingProc; begin (BorlandIDEServices as IOTAKeyboardServices) .LookupKeyBinding([Shortcut(Ord('D'), [ssCtrl])],LBindingRec); LFmtKeyBidingProc := LBindingRec.KeyProc; BindingServices.AddKeyBinding( [ Shortcut( Ord('F'), [ssCtrl,ssAlt,ssShift] ) ], LFmtKeyBidingProc, nil ); BindingServices.AddKeyBinding([Shortcut(VK_INSERT, [ssCtrl,ssAlt,ssShift])], AlternarModoInsercao, nil); BindingServices.AddKeyBinding([Shortcut(VK_INSERT, [])], MatarTecla, nil); BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [ssCtrl])], InserirLinhaAbaixo, nil); BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [ssShift])], InserirLinhaAbaixo, nil); // BindingServices.AddKeyBinding([Shortcut(Ord('D'), [ssCtrl])], MatarTecla, nil); end; Could some kind soul put me in the right track, please? Also, am I dreaming about having seen such code for a keyboard mapping? Thank you very much. -- Carlos
  9. Carlos Tré

    Tools API - Changing Key Assignment

    Well, let's add to the confusion a little bit: I left this thing completely alone as I have more pressing matters to address but, much to my surprise, yesterday I went for a Ctrl+Shif+Alt+D attached to a duplicate line command I use all the time, and as I hit Ctrl+Shif+ALt+F by mistake I noticed it had started working as expected at some point. I can't make any sense of it, Ctrl-D is still listed as the context menu hot key, and the only things in between are some windows updates ans restarts, and the latest IDE patch that, I guess, is not related at all. Go figure! This late reply is meant only as a feedback to those who kindly dedicated some time to help and educate me. Once again, thank you all very much. -- Carlos
  10. Carlos Tré

    Tools API - Changing Key Assignment

    @Achim KalwaCtrl+Enter is an old habit from the Brief days, way before Delphi entered the scene. I think it needs some tweaking, I don't quite like its behavior on long lines. As it is ver rare and I don't have much free time and lack the expertise and knowledge to work it out, I guess it will stay this way for the moment. I usually turn "English language mode" on to code as it is consistent with the programming language itself, but when I wrote that piece I was particularly mad at unnecessary anglicization that stormed into Brazilian Portuguese, particularly in TI lingo, and overreacted; 🙂 Thank you for taking the time to come back and comment, I appreciated it very much.
  11. Carlos Tré

    Tools API - Changing Key Assignment

    My pleasure.
  12. Carlos Tré

    Tools API - Changing Key Assignment

    I wrote it myself a few years ago, based on an article written by Cary Jensen that you can find here. Attached is the code for the expert in its current state, the changing of the format source key assignment is still a work in progress. Editor.zip
  13. Carlos Tré

    Tools API - Changing Key Assignment

    That's exactly what I think. I'll toy with it a little more over the weekend and see if I make any progress on this.
  14. Carlos Tré

    Tools API - Changing Key Assignment

    Thank you very much for your answer. I already had an expert in place to change the editor's toggle insert / overwrite mode for I am a lousy typist and was going crazy hitting the insert key when home was intended. As for a hammer everything looks like a nail, I thought that was the way to go. This is what I did: procedure TMelhoriasEditor.ReassignFormatSource; var LNTAServices : INTAServices; LActionList : TContainedActionList ; LAction : TContainedAction ; LActionName : string; begin Assert(Assigned(BorlandIDEServices)); LNTAServices := BorlandIDEServices as INTAServices; Assert(Assigned(LNTAServices)); LActionList := LNTAServices.ActionList; Assert(Assigned(LActionList)); for LAction in LActionList do begin LActionName := LAction.Name; if LActionName.Equals('actFormatSource') then begin LAction.Shortcut := (vkF or scCtrl or scShift or scAlt); Exit; end; end; end; It changed the main menu entry shortcut to the intended Ctrl+Shift+Alt+F key combination, but ir doesn't fire the action. Also, as noted, the local menu entry still shows associated with Ctrl+D and would fire it in case I remove its association with "MatarTecla", a do-nothing method. This leaves wondering if there's a way to get the TKeyBindingProc value other than the way (IOTAKeyboardServices.LookupKeyBinding) I tried. Or if I just didn't figured out the way to work it properly. Unfortunately this seems to be way above my league. Again, than you all for your precious time helping me. -- Best, Carlos
  15. Carlos Tré

    Tools API - Changing Key Assignment

    I saw that, I just couldn't get to anywhere from there. Thank you very much for putting me in the right track. Best, Carlos
  16. Dear All, I'm not versed in HTTP a SSL, so excuse-me if I make any confusion. A FMX project I'm working on demands GET, POST, FTP and email receiving and parsing capabilities. I started with a simple GET do a HTTPS server, so I dropped a TIdHTTP and a TIdSSLIOHandlerSocketOpenSSL components in a bare form and configured as follows: IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.IOHandler := IdSSLIOHandler; IdSSLIOHandler1.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]; IdSSLIOHandler1.SSLOptions.SSLMode apparently has no impact and then called IdHTTP1.Get(<https url>); In the application executable folder there are 3 files: libeay32.dll, ssleay32.dll and the application executable. The GET method raises an exception EIdHTTPProtocolException with the message 'HTTP/1.1 403 Forbidden', so I think I'm missing something very basic because the <https url> works in the browser, I just could't figure it out what that would be by going through both component's properties. Can you help me? Also, a long time ago I needed to use Indy in a project, and there were paid support available. Is there nowadays? As I said before, this line of work is not my strong suit and I don't want to be the PITA I'll probably be - I think I'll have many more questions. Best regards & TIA Carlos
  17. Carlos Tré

    TIdHTTP SSL and error 'HTTP/1.1 403 Forbidden'

    Thank you very much, now it works like a charm. Next step is filling a form fields, I hope I can translate you English explanation into "Indysh" by myself. We''ll see. 🙂
  18. Carlos Tré

    TIdHTTP SSL and error 'HTTP/1.1 403 Forbidden'

    Luckily I had the strength required do hold the rod. 🙂
  19. Carlos Tré

    TIdHTTP SSL and error 'HTTP/1.1 403 Forbidden'

    Dear Kas Ob, Many thanks for help, very much appreciated. A precious lesson you taught me here, it will most certainly will be of help in the future as well. The browser debugger was instrumental here.
  20. Carlos Tré

    TIdHTTP SSL and error 'HTTP/1.1 403 Forbidden'

    Dear Remy, Many thanks for your help, I'll try not to be PITA. If SSL was not the problem I set out to find what could it be that I was missing. As I told before, I'm a newbie to internet programming, and was unaware that I should set a few more properties. I'm not completely there yet, but made some progress and now there is no authorization error. The response I get is encrypted and I don't know how to decrypt it. Is this another property I must set in order to solve it? Or shall I do further processing? As you probably must have noted by now, this is related to the problem I had with ICS, one that you kindly help me with. Having failed that POST attempt a few times I asked for and the webmaster set a lean and mean to get it working through a simple GET. And it did alright. Discussing my lack of experience on this matter with a fellow programmer, she suggested the change to Indy, so here I am 🙂 This is the relevant part of the code that works procedure TForm1.btnGetClick(Sender: TObject); var LResp : string; begin IdHTTP1.Request.Accept := 'text/html, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*'; IdHTTP1.Request.AcceptEncoding := 'gzip, deflate'; IdHTTP1.Request.UserAgent := 'Mozilla/4.0'; IdHTTP1.IOHandler := IdSSLIOHandler1; IdSSLIOHandler1.SSLOptions.SSLVersions := [sslvTLSv1_2]; IdLogFile1.Open; try LResp := IdHTTP1.Get('https://www.trivial.com.br/envia_arq3.php?senha=violeta&nome=tre'); finally IdLogFile1.Close; end; Memo1.Lines.Add(LResp); LResp should get 'tre' and I get '*)Jÿÿ=h' instead. Also, the log file created is empty, most certainly due to something I'm missing again. The only property set at run time is the file name in the component, and the IsHTTP1.Intercept is set to the logger. Again, many thanks for all your help. Edit: The code began to work after setting the UserAgent property.
  21. Dear All, I need to fill two fields in a form and then submit it. As I'm not well versed in this area, I come here and for some guidance. The page where they sit is coded as follows: <html> <body> <form id="form1" name="form1" action="envia_arq2.php" method="post"> Senha: <input TYPE="password" NAME="senha" SIZE="12"><br /><br /> Seu nome: <input TYPE="text" NAME="nome" SIZE="12"> <input name="enviar" type="submit" value="Enviar"> </form> </body> </html> This is a FMX application, so I can't use TWebBrowser as I've found in several articles in the internet. Furthermore, even the VCL version I couldn't make work, after navigating to the page the Document property is nil, making it impossible to retrieve the fields as indicated in those articles. I then moved on to ICS TSslHttpCli, tried a few basic things, but I came up empty on the very first attempt where I just set the URL (https://www.trivial.com.br/envia_arq2.htm) and did a GET to try and see how to proceed from there. An exception is raised signaling a missing SSL Context. Perhaps this is not the way to go. Could you please kindly share some light on this? Thanks in advance. -- Carlos
  22. Thank you all for helping an old dog to learn a new trick. -- Carlos
  23. Thank you very much for input, very much appreciated. How would I encode the submit button? Considering the code snippet input name="enviar" type="submit" value="Enviar"> the URL encoded parameters shall be "senha=violeta&nome=tre&enviar=Enviar" (https://www.trivial.com.br/envia_arq2.htm?senha=violeta&nome=tre&enviar=Enviar)? -- Carlos
  24. Thanks to both of you for your input, very much appreciated. I'll comeback and post the results. -- Carlos
  25. Dear fellow programmers, I'm trying to stick to Nick Hodges advice and keep the code loosely coupled, separating business from presentation, and observing oop principles. In order to accomplish this I: 1) code against interfaces; 2) adopted a sort of MVVM design pattern. Sort of because i don't really understand the difference among MVVM, MVC, MVP, etc. I thought that if I have business logic, view logic and persistence logic in separated units, apart from the views, and fully testable, I'd would be Ok to go; 3) I use Spring4D all around because in the future I want to take advantage of it's dependency injection capabilities. When it came to implement LiveBindings I stumbled into a problem: in order to create the adapters I need the actual classes, and to make the class implementation details visible in the module I call ViewModel would defeat all the isolation I accomplished so far. The solution I came up with is to keep interfaces in one module, implement them with abstract classes in another codeless module, and inherit from them and writing all the code in a third unit. I could keep the interface and it's abstract implementation in the same unit, both have no code, or separated and add another level of organization. That said, I kindly ask for your input on the solution I came up with. My goal is to keep Nick happy with interfaces, keep Delphi happy with classes, and myself happy with Spring4D. Is this the way to go or is there a better solution? Thank you so very much in advance . Best regards, Carlos Tré
×