2015-08-03 125 views
3

因此,我使用Delphi XE,我想安裝TChromeTabs(http://www.easy-ip.net/tchrometabs.html)或(https://github.com/norgepaul/TChromeTabs),因爲它似乎做我所需要的。德爾福TChromeTabs不工作在德爾福XE

首先,該組件沒有一個Delphi XE包,所以我想我可以嘗試使用XE2製作的包,然後當它給我的錯誤,我想德爾福7同樣內置包結果。

我的意思是,組件的安裝工作就好了,該組件顯示在我的調色板,但如果我想將我的表格上的分量,我會在地址00000000的AccessViolation細節說:

[422A1207]{Tee9150.bpl } Gdipapi.TGdiplusBase.NewInstance + $B 
[5003A753]{rtl150.bpl } [email protected] (Line 12121, "System.pas" + 5) + $0 
[422B3CE2]{Tee9150.bpl } Gdipobj.TGPPen + $E 
[11AE5CF5]{ChromeTabs_XE2_R.bpl} ChromeTabsControls.TBaseChromeButtonControl.GetButtonPen (Line 1897, "ChromeTabsControls.pas" + 2) + $27 
[11AE22EF]{ChromeTabs_XE2_R.bpl} ChromeTabsControls.TAddButtonControl.GetPolygons (Line 481, "ChromeTabsControls.pas" + 1) + $4 
[50285877]{vcl150.bpl } Controls.TWinControl.GetClientRect (Line 11931, "Controls.pas" + 1) + $9 
[5027BF34]{vcl150.bpl } Controls.TControl.GetClientWidth (Line 5661, "Controls.pas" + 1) + $6 
[11AE1F06]{ChromeTabs_XE2_R.bpl} ChromeTabsControls.TBaseChromeTabsControl.ContainsPoint (Line 318, "ChromeTabsControls.pas" + 3) + $7 
[11AEBB0F]{ChromeTabs_XE2_R.bpl} ChromeTabs.TCustomChromeTabs.HitTest (Line 1777, "ChromeTabs.pas" + 9) + $B 
[11AE9D3B]{ChromeTabs_XE2_R.bpl} ChromeTabs.TCustomChromeTabs.SetControlDrawStates (Line 819, "ChromeTabs.pas" + 6) + $28 
[11AEF5F2]{ChromeTabs_XE2_R.bpl} ChromeTabs.TCustomChromeTabs.Resize (Line 3344, "ChromeTabs.pas" + 9) + $6 
[50283788]{vcl150.bpl } Controls.TWinControl.WMSize (Line 10336, "Controls.pas" + 20) + $6 
[5027DF6C]{vcl150.bpl } Controls.TControl.WndProc (Line 7074, "Controls.pas" + 91) + $6 
[50037560]{rtl150.bpl } [email protected] (Line 3768, "System.pas" + 20) + $0 
[5003C0B0]{rtl150.bpl } [email protected] (Line 16968, "System.pas" + 14) + $0 
[20B03B6E]{coreide150.bpl} PropInsp.TPropertyInspector.DrawNamePair (Line 731, "PropInsp.pas" + 49) + $19 
[5003C167]{rtl150.bpl } [email protected] (Line 17237, "System.pas" + 9) + $0 
[50282830]{vcl150.bpl } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6 
[5025E975]{vcl150.bpl } Graphics.TCanvas.SetHandle (Line 4170, "Graphics.pas" + 6) + $6 
[50282830]{vcl150.bpl } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6 
[500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0 
[11AF010E]{ChromeTabs_XE2_R.bpl} ChromeTabs.TCustomChromeTabs.WndProc (Line 3716, "ChromeTabs.pas" + 10) + $4 
[50281ED0]{vcl150.bpl } Controls.TWinControl.MainWndProc (Line 9552, "Controls.pas" + 3) + $6 
[500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0 
[5003ABE2]{rtl150.bpl } System.TMonitor.Exit (Line 12523, "System.pas" + 9) + $7 
[5003AC1B]{rtl150.bpl } System.TMonitor.Exit (Line 12537, "System.pas" + 2) + $7 
[5009E0CE]{rtl150.bpl } Classes.TInterfaceList.GetCount (Line 4147, "Classes.pas" + 5) + $9 
[50040A33]{rtl150.bpl } System.TInterfacedObject._Release (Line 28243, "System.pas" + 1) + $3 
[50040950]{rtl150.bpl } [email protected] (Line 28061, "System.pas" + 10) + $0 
[51B1DD1E]{vcldesigner150.bpl} VCLSurface.TVclDesignSurface.IsDesignMsg (Line 3307, "VCLSurface.pas" + 186) + $28 
[50281129]{vcl150.bpl } Controls.TWinControl.Broadcast (Line 8982, "Controls.pas" + 1) + $3 
[502811A9]{vcl150.bpl } Controls.TWinControl.NotifyControls (Line 9010, "Controls.pas" + 9) + $2 
[5003AEBE]{rtl150.bpl } System.TMonitor.TryEnter (Line 12708, "System.pas" + 10) + $0 
[5003AA38]{rtl150.bpl } System.TMonitor.Enter (Line 12406, "System.pas" + 4) + $2 
[50282830]{vcl150.bpl } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6 
[502532CF]{vcl150.bpl } Windows.CreateWindowEx (Line 35262, "windows.pas" + 2) + $2A 
[502815D4]{vcl150.bpl } Controls.TWinControl.CreateWindowHandle (Line 9225, "Controls.pas" + 1) + $2A 
[11AED02A]{ChromeTabs_XE2_R.bpl} ChromeTabs.TCustomChromeTabs.CreateWindowHandle (Line 2291, "ChromeTabs.pas" + 1) + $2 
[502814D6]{vcl150.bpl } Controls.TWinControl.CreateWnd (Line 9202, "Controls.pas" + 45) + $A 
[5028191A]{vcl150.bpl } Controls.TWinControl.CreateHandle (Line 9340, "Controls.pas" + 3) + $4 
[50281BE0]{vcl150.bpl } Controls.TWinControl.UpdateShowing (Line 9463, "Controls.pas" + 7) + $11 
[50281C0E]{vcl150.bpl } Controls.TWinControl.UpdateShowing (Line 9466, "Controls.pas" + 10) + $10 
[50281D88]{vcl150.bpl } Controls.TWinControl.UpdateControlState (Line 9510, "Controls.pas" + 21) + $3 
[50280FE2]{vcl150.bpl } Controls.TWinControl.InsertControl (Line 8903, "Controls.pas" + 25) + $2 
[5027C54C]{vcl150.bpl } Controls.TControl.SetParent (Line 5873, "Controls.pas" + 9) + $4 
[502877B9]{vcl150.bpl } Controls.TWinControl.SetParent (Line 13156, "Controls.pas" + 5) + $5 
[51B18803]{vcldesigner150.bpl} VCLSurface.TControlItem.SetParent (Line 897, "VCLSurface.pas" + 1) + $19 
[2107A0DF]{designide150.bpl} ComponentDesigner.TComponentRoot.DoCreateComponent (Line 2411, "ComponentDesigner.pas" + 99) + $8 
[2107F022]{designide150.bpl} ComponentDesigner.TComponentRoot.CreateCurrentComponent (Line 4384, "ComponentDesigner.pas" + 2) + $32 
[2109636E]{designide150.bpl} Surface.TDesignSurface.CreateItem (Line 187, "Surface.pas" + 1) + $11 
[2104E6BE]{designide150.bpl} Designer.TDesigner.DoDragCreate (Line 764, "Designer.pas" + 1) + $F 
[2104EE98]{designide150.bpl} Designer.TDesigner.DragEnd (Line 928, "Designer.pas" + 19) + $3 
[21051474]{designide150.bpl} Designer.TDesigner.MouseUp (Line 1710, "Designer.pas" + 1) + $2 
[51B1CCA1]{vcldesigner150.bpl} VCLSurface.MouseEvent (Line 2908, "VCLSurface.pas" + 45) + $11 
[5003AC1B]{rtl150.bpl } System.TMonitor.Exit (Line 12537, "System.pas" + 2) + $7 
[51B1D87B]{vcldesigner150.bpl} VCLSurface.TVclDesignSurface.IsDesignMsg (Line 3169, "VCLSurface.pas" + 48) + $6 
[500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0 
[5003A336]{rtl150.bpl } [email protected] (Line 11370, "System.pas" + 1) + $8 
[5027DCDB]{vcl150.bpl } Controls.TControl.WndProc (Line 6987, "Controls.pas" + 4) + $21 
[502820C3]{vcl150.bpl } Controls.TWinControl.IsControlMouseMsg (Line 9608, "Controls.pas" + 1) + $9 
[50282830]{vcl150.bpl } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6 
[5034FB28]{vcl150.bpl } Forms.TCustomForm.WndProc (Line 3961, "Forms.pas" + 191) + $5 
[50281ED0]{vcl150.bpl } Controls.TWinControl.MainWndProc (Line 9552, "Controls.pas" + 3) + $6 
[500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0 
[503975EB]{vcl150.bpl } AppEvnts.TMultiCaster.GetAppEvents (Line 653, "AppEvnts.pas" + 1) + $5 
[50358AF7]{vcl150.bpl } Forms.TApplication.ProcessMessage (Line 9760, "Forms.pas" + 23) + $1 
[50358B3A]{vcl150.bpl } Forms.TApplication.HandleMessage (Line 9790, "Forms.pas" + 1) + $4 
[50358E65]{vcl150.bpl } Forms.TApplication.Run (Line 9927, "Forms.pas" + 26) + $3 

我不知道如何處理這個... 如果我卸載XE2軟件包並安裝Delphi 7軟件包,也會出現同樣的錯誤。似乎這一切都始於Tee包以某種方式...我可能是錯的

我應該怎麼做才能使其正常工作並能夠使用該組件?

+1

在這裏的一些信息也許:http://www.teechart.net/support/viewtopic.php?f=3&t=12346 –

+0

是的,我現在看到,同樣的問題arizes這個組件TrkSmartTabs(Klever),和看起來類似...也許他們從另一個靈感... http://rmklever.com/?p = 273(在評論部分,很多關於Delphi XE的投訴 - 特別是GDI +庫似乎弄糟了) – user1137313

+1

也許作者可以幫忙,@norgepaul –

回答

1

好了,該解決方案是:

  1. 重命名文件GDIPAPI.pas,GDIPObj.pasGDIPUtils.pas位於該組件的文件夾,到GDIPlus子文件夾。我通過添加尾隨x來重命名它們。 所以我結束了GDIPAPIx.pas,GDIPObjx.pasGDIPUtilsx.pas

  2. 編輯PAS文件和更換單位名稱爲新名稱,並更新用途子句指向新的單位名稱。 (我還將更改後的pas文件添加到我的Lib文件夾中)

  3. 編譯,構建和安裝組件。

如果你跳過任何上述步驟,你很可能會收到各種編譯錯誤的,所造成的事實,即單位可能仍然reffer到位於你的庫文件夾中已原始GDIP文件(放置那裏最有可能是Tee)。因此,請確保用新名稱替換單位內的所有參照

我也認爲它可能工作,如果我只重命名前2個文件,但我沒有心情進行任何更多的測試。

現在它工作正常。我可以將控件添加到我的表單中,並且可以正常運行我的簡單測試應用程序,而不會出現任何錯誤。

這將是偉大的,如果它的創造者:@norgepaul將解決這個問題,並創建一個德爾福XE的DP也。

+0

我沒有XE,但很樂意添加任何要發送給我的修復程序。只需在bug追蹤器中添加一個問題,我會盡快找到問題。 – norgepaul

+0

請這麼友好,給我一個鏈接,我應該發佈問題,也許解決方案。我不知道在哪裏可以找到你所說的bug跟蹤器 – user1137313

+0

但是,像我這樣的任何問題的解決方案只是將GDI +單元重命名爲其他庫不使用的名稱,所以不要讓它們具有相同的名稱名稱與現在一樣,因爲它們與具有相同單元名稱但內容略有不同的另一個庫衝突。所以只需重命名文件和對它們的引用,一切都會好的。爲了做到這一點,您不需要XE版本。它是一個簡單的文件重命名問題+一些使用子句編輯指向新單位。沒什麼大不了的 – user1137313