Posts

Showing posts from May, 2011

Curious bug in CodeSnip???

A user of my CodeSnip program has reported a strange bug where, after using the Snippets Editor to add a new snippet, the editor dialog box refuses to close, hanging the program.Apparently this happens only sometimes, and affects v3.8.9 and some earlier versions.I can't reproduce the problem and was wandering if anyone else has experienced this bug. If so it would be very helpful if you could leave a comment describing what happened and what you were doing when the bug arose.Thanks

Delphi, Javascript and Floating Point Parameters

I recently came across an interesting little problem when using Delphi to call JavaScript in an HTML document loaded into a TWebBrowser control.The code used the execScript method of the IHTMLWindow interface, which requires that a string containing the JavaScript function call is passed as one of its parameters.So you have to assemble a string containing the function call and its parameters, something like this:varJSFn:string;StrParam:string;IntParam:Integer;FloatParam:Double;beginStrParam:='Say \"Hello\"';// double quotes must be escapedIntParam:=42;FloatParam:=1234.56789;JSFn:=Format('Foo(%d, "%s", %.8f);',[IntParam,StrParam,FloatParam]);ExecJS(JSFn);end; I'll show ExecJS later. It's just a wrapper that ultimately calls IHTMLWindow.execScript with the required JavaScript.The interesting bit is what happens to the floating point parameter. Delphi consults the current locale when formatting floats, so the decimal separator used in the result…