Page 1 of 1

Target platforms officially supported by TeeChart 8.01?

Posted: Thu Sep 27, 2007 9:11 am
by 9337075
I can not find explicit declaration concerning supported target platforms for the latest version. Do you include Windows 98, Me?

Unit TeeNumericGauge.pas (package TeePro811.bpl) uses calls to

AddFontMemResourceEx and RemoveFontMemResourceEx.

According to MSDN documentation:

Requirements
Windows NT/2000/XP/Vista: Included in Windows 2000 and later.
Windows 95/98/Me: Unsupported.

Presence of this unit in this package immediately limits the set of target platforms to Windows 2000 and above. :cry:

Best regards,
Michael

Posted: Thu Sep 27, 2007 9:36 am
by narcis
Hi Michael,

Yes, this is a known issue and we have already fixed it for the next maintenance release. In the meantime, you can implement RemoveCustomFonts method like this:

Code: Select all

procedure RemoveCustomFonts;
begin
  TeeAddFontNames:=nil;

  if IsWindowsNT then
  begin
    if TeeFontLCD<>0 then
       RemoveFontMemResourceEx(TeeFontLCD);

    if TeeFontLED<>0 then
       RemoveFontMemResourceEx(TeeFontLED);
  end;
end;

Posted: Thu Sep 27, 2007 9:48 am
by narcis
Hi Michael,

I forgot to mention that at the end of the same file you should also change this:

Code: Select all

initialization
  {$IFNDEF CLR}
  AddCustomFonts;
  {$ENDIF}
For this:

Code: Select all

initialization
  {$IFNDEF CLR}
  if IsWindowsNT then
     AddCustomFonts;
  {$ENDIF}

Posted: Thu Sep 27, 2007 1:15 pm
by 9337075
Hi Narcis,

These changes unfortunately don't help. The reason is simple. You eliminated the calls to these 2 functions at Win98 platforms, but the functions are still present in the import table! Thus any application using this unit or the package TeePro811.bpl will fail at Win98, Me.

You need to implement dynamic check of GDI32.dll, something like
LoadLibrary and GetProcAddress. This is quite obvious and well-known approach. I believe that some VCL functions requiring extended Windows API are implemented using this approach.

In short: you need to replace static binding with dynamic binding!

Sincerely,
Michael

Posted: Thu Sep 27, 2007 2:42 pm
by narcis
Hi Michael,

Thanks for your feedback. Ok, we have implemented dynamic binding and I've sent you the new version of TeeNumericGauge.pas. Would you be so kind to test it at your end and let us know how it went?

Thanks in advance.

Posted: Thu Sep 27, 2007 8:15 pm
by 9337075
Hi Narcis,

Thank you for the update!

I recompiled TeeChart 8.01 and after this step recompiled my applications (they all use TeeChart run-time packages). Preliminary testing in Windows 98 Second Edition English (Virtual Machine) shows that compatibility now restored. At least all my applications now start correctly and they are able to pass some simple regression tests.

I need to note that currently I am not using gauge series at all.

With best regards,
Michael

Posted: Fri Sep 28, 2007 8:05 am
by narcis
Hi Michael,

Thank you very much for the information. I'm glad to hear that.