the Intraweb Application Wizard creates by default a C++ project for the classic 32 bit Borland compiler,
but now the default compiler for Embarcadero RAD Studio 10.3.2 32 AND 64 bit is CLANG.
The classic 32 bit Borland compiler does not provide C++11 lamda function support,
therefore gsession functions like Excecute() and LookUp() probably can not be used with this compiler.
Turning off the classic 32 bit compiler creates an error message in IWInit.hpp
But I find all very confusing, because i need the return values on server side.
So Why should I use a callback method, when all I need to do is to get a result value that is on the client side?
Also, I´m not sure if I got this right.
Here is what I have so far...
1- the CallBackMethod:
procedure TfrmBase.clbkGridSel(aParams: TStrings; out aResult: string);
begin
aResult := aParams.Values['Selection'];
end;
2 - the registration of the callback method
procedure TfrmBase.IWAppFormCreate(Sender: TObject);
begin
WebApplication.RegisterCallBack('clbkGridSel', clbkGridSel);
end;
How do I get, on server side, the aResult from the callback method to process this information?
I wrote this method to execute the callback on client side, but as you can see, It doesn´t help me to get the information.
function TfrmBase.GetSelecaoGrid: string;
begin
WebApplication.
CallBackResponse.
AddJavaScriptToExecute('ajaxCall("clbkGridSel", "&Selection=" + GRIDCADUSUARIOGetSelected()');
end;
GRIDCADUSUARIOGetSelected() id the javascript function that will return the selected data.
In other words, what I need to accomplish, is to be able to call javascript "GRIDCADUSUARIOGetSelected() " from Server Side, and get it´s result value.
First of all, thank you for your creative work and tireless efforts.
However, I have found a memory-leakage problem which occurs each time when IW destroys a session. Even if it is a web page with only one button or no user codes at all (including all of your demos), when a session is destroyed, it only releases 1/10 of the memory it has consumed(15.1.3 is a little better but still far from satisfactory). For instance, it consumes approximately 1mb memory when a session starts and it spits back only 0.1mb memory when the session is killed.
Please use any one of your demos and evaluate the memory ‘black holes’. I usually set the sessiontimeout time to 1 minute to quicken the process but 10 minutes made no difference. I sincerely hope you could fix up the memory problem ASAP.
Thank you for your atention.
Ps: I used one of your demos named ‘Guess’. The pic below shows what I had in my TASKMANAGER:
Sorry I forgot to tell you the pic shows what I experienced with one of your IW demos called 'Guess'. You created this demo so I didn't post it as an attachment.
In VCL it is possible to find out which control is active, and with before and after events, also to tell what the next control to receive focus is, or which control had the focus before.
I used that to bypass some activities in events like OnEnter and OnExit, only doing certain things, if the previous or next active control, was the expected one.
In Intraweb there is an ActiveControl property of the IWForm, but it do not seem to get updated as the focus shifts from control to control. In the IWForm documentation is says it can be used to set the active control when the form is rendered. I suppose it is like the taborder value.
Are there any other way of getting info about which control is the active one ?
This Visa server is quite specific (I have tried two commercial FTP clients /WS_FTP and TurboFTO/, none of them could connect to this server), two examples:
- requires a special sequence of FTP command during connection startup ( I could follow this making some modifications in IdFTP.pas)
- behaves a little bit special when using the CCC option (I'm stuck with this)
Server documentation states:
Quote:The client is expected to initiate the TLS shutdown after receiving the 200 response to the CCC request.
When I issue the CCC command, it receives the correct answer from the server, but after this the connection is broken. It seems the Indy Ftp client / OpenSSL solution handles this situation a little bit different as the server requires it, but I do not know how to change this.
ANY HELP WOULD BE WELCOME!
What I can see in the IdFtp.pas, after issuing the "CCC" command and receiving the acceptence from the server, the following is executed:
Code:
(IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := True;
And that's all!!!
I do not know how could any change be applied to modify the client behaviour.
Updated to 15.1.3 and running as a service with reverse proxy. The new SVG locker image logic looks to break if you are using BaseRewriteURL. If I use BaseRewriteURL I get a 404 on 'loading_svg.svg', without usingBaseRewriteURL the image locker displays fine.