Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Failed to load class library
#1
Hi,

I need to use the igrid component in QM, and after the following code is executed, it will prompt the following error message
 
Code:
Copy      Help
Error in iGrid:DlgProc: type library error: 80029C4A, Error loading type library/DLL. (0x80029C4A). .


igrid download:
https://10tec.com/FS/Demos/iGrid/10Tec-i...-Setup.exe


Macro iGrid
Code:
Copy      Help
typelib iGrid750_10Tec {79B8840D-A9AF-43FE-B84C-C1DAF9C579B9} 1.0

str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 224 136 "Dialog" "4"
;3 ActiveX 0x54030000 0x0 0 0 222 114 "iGrid750_10Tec.iGrid {23D63E82-5264-4425-834C-5E34F2F9E667}"
;1 Button 0x54030001 0x4 116 116 48 14 "OK"
;2 Button 0x54030000 0x4 168 116 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040C02 "*" "" "" ""

if(!ShowDialog(dd &sub.DlgProc 0)) ret


#sub DlgProc
function# hDlg message wParam lParam

sel message
,case WM_INITDIALOG
,iGrid750_10Tec.iGrid ig3
,ig3._getcontrol(id(3 hDlg))
,
,
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
#2
Maybe 64-bit dll.
#3
iGrid is a 32-bit OCX,

Hints are found in the description below

https://10tec.com/activex-grid/
#4
The typelibrary contains error in coclass iGrid definition. When enumerating its interfaces, cannot get one of interfaces. I tried a workaround (ignore the interface), unsuccessfully. I also tried to load the typelibrary with oleview.exe from Windows SDK, but it cannot display iGrid coclass too (same error).

You can report it to 10tec, maybe they will fix it.

Anyway, the COM component is too complex to use in QM. Would be a nightmare to use it in QM. Or I'm now spoiled by C#.
#5
Thanks for your help.
I found the following description in the help file, which is really troublesome
Quote:To use an ActiveX control in Delphi, you need to deal with its type library and transform VB syntax using the COM control interface. Moreover, COM data types (such as Variant) are not native to Delphi and you will get additional problems with them if you want to use iGrid in Delphi. Delphi programmers also say that VB is the ideal development environment for iGrid.
#6
Execute successfully with the following code

from:
iGrid750_10Tec.iGrid ig3
to:
iGrid750_10Tec._iGrid ig3


Macro iGrid
Code:
Copy      Help
typelib iGrid750_10Tec {79B8840D-A9AF-43FE-B84C-C1DAF9C579B9} 1.0

str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 224 136 "Dialog" "4"
;3 ActiveX 0x54030000 0x0 0 0 216 112 "iGrid750_10Tec.iGrid {23D63E82-5264-4425-834C-5E34F2F9E667}"
;1 Button 0x54030001 0x4 116 116 48 14 "OK"
;2 Button 0x54030000 0x4 168 116 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040C02 "*" "" "" ""

if(!ShowDialog(dd &sub.DlgProc 0)) ret


#sub DlgProc
function# hDlg message wParam lParam

sel message
,case WM_INITDIALOG
,iGrid750_10Tec._iGrid ig3
,ig3._getcontrol(id(3 hDlg))
,ig3.DefaultRowHeight=42
,ig3.ColCount = 2
,ig3.RowCount = 5
,ig3.CellValue(1, 1) = "abc"
,
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
#7
Now there's a new problem.
The object member list contains only properties and methods without events

The following error message is displayed after the following code is added
 
Code:
Copy      Help
ig3._setevents("sub.ig3")

Error in <open ":44: /762">iGrid:DlgProc:  coclass must have event source interface.


Forum Jump:


Users browsing this thread: 2 Guest(s)