View Issue Details

IDProjectCategoryView StatusLast Update
0005983JEDI VCL00 JVCL Componentspublic2015-09-14 13:20
Reporterboerema1Assigned Toobones 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionDaily / GIT 
Target VersionFixed in Version3.48 
Summary0005983: CheckWin32Version which is used in several components has a bug in Delphi 6
DescriptionThe CheckWin32Version from Delphi6 has a bug that was fixed in D7.
As a consequence the components using this don't work as they should when compiled with D6.
See:
http://www.distribucon.com/blog/CommentView,guid,299.aspx
and
http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.CheckWin32Version

There is an unofficial D6 patch available but that of course only works for people that notice the bug and find the patch to fix this.
See:
http://cc.embarcadero.com/item/17706
TagsNo tags attached.

Activities

obones

2013-01-15 15:32

administrator   ~0020359

Are you sure we are using the built-in one and not one from the JCL?
If we are using the built-in one, can you propose a replacement?

boerema1

2013-01-16 13:57

reporter   ~0020400

I can't find a function with the same name defined in the JCL so no the JVCL isn't using a JCL version.

The implementation by Dan Miser from the first link in my previous post seems to work fine:

function FixedCheckWin32Version(AMajor: Integer; AMinor: Integer = 0): Boolean;
begin
  Result := (AMajor < Win32MajorVersion) or
            ((AMajor = Win32MajorVersion) and
             (AMinor <= Win32MinorVersion));
end;

I'm not sure what the best way would be to implement it for all files in the JVCL. IFDEF Delphi 6 or just always use the above function.

For rereference here is the list of files from the JVCL that use CheckWin32Version:

\jvcl\run\JvOutlookBar.pas
\jvcl\run\JvExStdCtrls.pas
\jvcl\run\JvDialogs.pas
\jvcl\run\JvDateTimePicker.pas
\jvcl\run\JvBalloonHint.pas
\jvcl\run\JvDBLookup.pas
\jvcl\run\JvWinDialogs.pas
\jvcl\run\JvRichEdit.pas
\jvcl\run\JvCaptionButton.pas
\jvcl\run\JvExMask.pas
\jvcl\run\JvToolEdit.pas
\jvcl\run\JvDockControlForm.pas
\jvcl\run\JvListView.pas
\jvcl\run\JvEditorCommon.pas
\jvcl\run\Hid.pas
\jvcl\run\JvMenus.pas
\jvcl\run\JvComCtrls.pas
\jvcl\run\JvThemes.pas
\jvcl\devtools\JvExVCL\src\JvExMask.pas
\jvcl\devtools\JvExVCL\src\JvExStdCtrls.pas

obones

2013-12-13 17:12

administrator   ~0020841

There is a function in JclSysInfo called JclCheckWinVersion that already offers the fixed version.

obones

2013-12-13 17:35

administrator   ~0020842

This is now fixed in GIT

Issue History

Date Modified Username Field Change
2012-09-14 19:31 boerema1 New Issue
2013-01-15 15:32 obones Note Added: 0020359
2013-01-15 15:32 obones Status new => feedback
2013-01-16 13:57 boerema1 Note Added: 0020400
2013-12-13 11:39 obones Status feedback => acknowledged
2013-12-13 17:12 obones Note Added: 0020841
2013-12-13 17:35 obones Note Added: 0020842
2013-12-13 17:35 obones Status acknowledged => resolved
2013-12-13 17:35 obones Fixed in Version => Daily / GIT
2013-12-13 17:35 obones Resolution open => fixed
2013-12-13 17:35 obones Assigned To => obones
2015-09-14 13:20 obones Fixed in Version Daily / GIT => 3.48