Jump to content

Carlos Tré

Members
  • Content Count

    32
  • Joined

  • Last visited

Community Reputation

5 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 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
  2. 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.
  3. 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
  4. 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
  5. 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
  6. 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. 🙂
  7. Carlos Tré

    TIdHTTP SSL and error 'HTTP/1.1 403 Forbidden'

    Luckily I had the strength required do hold the rod. 🙂
  8. 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.
  9. 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.
  10. 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
  11. Thank you all for helping an old dog to learn a new trick. -- Carlos
  12. 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
  13. Thanks to both of you for your input, very much appreciated. I'll comeback and post the results. -- Carlos
  14. 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
  15. It was past time I'd come back and share my conclusion. I'm not well versed in OOP, I'm just an old dog — *very* old, btw — and lack the mind sharpness I used to have back in the day. The best I could come up with in order to make the implementation independent was to drop the interface approach completely and go the abstract class way. That better implementation tool or technology waiting around the corner will pose no problem. Also, they tend to be simple classes since they model data entry controls, so they don't require exhaustive testing. Thank you all for the input provided. Best, Carlols
×