Page 1 of 2

EConvertError in ChangeLangForExtended method. Delphi 2009

Posted: Fri Dec 19, 2008 3:07 pm
by johncbennett
Hi,

I'm using TsiLang version 6.3.0.4 in Delphi 2009, update 2. When attempting to switch between two languages that have Extended Translations (in this case, the Left/Width of labels and buttons) I continually get an EConvertError in the internal ChangeLangForExtended method, with the message similar to:

"Project Project1.exe raised exception class EConvertError with message "xxx56" is not an integer value"

Note that the "xxx" isn't literal: It's actually a combination of non-Latin characters that I can't reproduce here.

It looks like the ChangeLangForExtended method is expecting an integer (for the width or left of the button/label), but is returning a value with some extra characters prefixed. In my case, the "Left" value for the button in the secondary language should be "56", but the method is receiving something like "xxx56".

I have reproduced this in the simplest, single-form project started from scratch, with one tsiLang component, two languages (French/English), and a button and a label, with all properties set to default. It seems that this affects only integer values in the Extended Translation: I've tried with properties like Font.Name, Borderstyle, Enabled, and they are handled correctly.

Any ideas?

Thanks,

John Bennett[/img]

Posted: Sun Dec 21, 2008 6:03 am
by isiticov
Hi,

Thank you for your report. We will try to reproduce and fix the problem shortly.

Posted: Tue Dec 23, 2008 8:59 pm
by BenjyKid
Hi,

I have exactly the same problem. I hope you'll be able to fix this soon because we can't ship with this bug in our application.

Posted: Thu Dec 25, 2008 3:39 pm
by isiticov
Hi,
Just published 6.3.1 version includes this fix.

Posted: Thu Dec 25, 2008 4:21 pm
by johncbennett
Thanks for the quick work, Igor. I'll check it out.

Posted: Thu Dec 25, 2008 7:01 pm
by BenjyKid
Thanks a lot. It seems to work fine so far. :)

Posted: Fri Dec 26, 2008 12:03 am
by johncbennett
Hi Igor,

Still the same problem with Version 6.3.1: Extended translations are giving me an EConvertError for integer values. However, it seems only to happen when changing back to "Language N1" from "Language N2". Can I e-mail you a zipped project file with the problem?

Thanks,

John Bennett

Posted: Fri Dec 26, 2008 4:27 am
by isiticov
Hi,

Yes, please email a sample project to me. Thanks.

Posted: Sun Mar 15, 2009 2:45 pm
by BenjyKid
Version 6.4 reintroduces this problem for me.

I also had to delete all the extended translation in my project after upgrading because TsiLang got stuck when loading 8MB of garbage data :shock: that probably came from a bug in the previous version. (Fortunately I had only 1 extended translation property on that form).

When can I expect a bugfix for the extended translations? Delphi 2009 has been out for quite a while.

Version 6.4

Posted: Sun Mar 15, 2009 4:41 pm
by johncbennett
Same here. Version 6.4 reintroduced the original problem, and also caused the loading of translations to be slowed down by a factor of a hundred or so. As BenjyKid reported, this is likely due to the megabytes of garbage data that seems to be generated in the translatio component in some instances. In my case, the a 500 KB form balooned to almost 100 Megabytes in size after repeated loads and saves.

We cannot use this component in its current state, and have fallen back to using the previous version.

John Bennett,
ThoughtWorks

Posted: Mon Mar 16, 2009 4:47 am
by isiticov
Please send us sample projects to reproduce these problems. Unfortunately, we're unable to reproduce them on our side with our projects. :(

EConvertError with extended translations

Posted: Wed Apr 08, 2009 7:48 pm
by johncbennett
Hi Igor,

Sorry for the slow reply to this issue -- we've been too busy to revisit it until now.

I am now attempting to use TSILang 6.4 with Delphi 2009, update 2. The issue discussed in the original post above (EConvertError when translating forms with extended properties) seems to have been reintroduced into TSILang 6.4: It had been corrected in 6.3.0.1. We cannot successfully switch between languages without this exception appearing.

I have a small sample project that easily recreates the error, and will send it to you at your Support address.

Please let me know if you are able to find and correct the problem. We would very much like to begin using TSILang 6.4 for our production code.

Best,

John Bennett,
ThoughtWorks

Posted: Thu Apr 09, 2009 12:29 pm
by isiticov
Please check your email and let us know if it helped.

Posted: Fri Apr 10, 2009 6:26 pm
by BenjyKid
@johncbennett
Please try to find all the tsilang bpl and dcp files on your harddisc and delete them. Then compile the package on your own. This fixed it for me. I'm wondering if the installer had installed an old version of the packages because I had to delete the old packages when I needed to patch the old version of tsilang. :?

Posted: Fri Apr 10, 2009 6:57 pm
by johncbennett
@benjykid
Thanks for the suggestion: Igor provided me with the same information, but I've had no success so far. I'll try it again. I'm glad to hear you were able to get it to work.

John