線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1461
推到 Plurk!
推到 Facebook!

BCB 6.0 安裝元件發生錯誤...

尚未結案
hugojack
一般會員


發表:6
回覆:2
積分:1
註冊:2004-12-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-23 16:25:24 IP:163.25.xxx.xxx 未訂閱
請問各位一下.... 我在用BCB6安裝一個TXYZPlot的元件時候發生錯誤... 錯誤訊息如下..... [C Error] TXYZPlot.h(257): E2113 Virtual function '_fastcall TXYZPlot::Mous eMove(TShiftState,int,int)' conflicts with base class 'TControl' [C Error] TXYZPlot.h(259): E2113 Virtual function '_fastcall TXYZPlot::Mous eDown(TMouseButton,TShiftState,int,int)' conflicts with base class 'TControl' [C Error] TXYZPlot.h(261): E2113 Virtual function '_fastcall TXYZPlot::Mous eUp(TMouseButton,TShiftState,int,int)' conflicts with base class 'TControl' [C Error] TXYZPlot.h(262): E2113 Virtual function '_fastcall TXYZPlot::DblC lick()' conflicts with base class 'TControl' [C Error] TXYZPlot.cpp(205): E2251 Cannot find default constructor to initi alize base class 'TPaintBox' 它的元件下載位置: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=13971 請問大家這是發生什麼事啊?? 拜託大家幫忙一下... 謝謝~~ 發表人 - hugojack 於 2004/12/23 20:25:45
tylin123
初階會員


發表:33
回覆:53
積分:32
註冊:2003-05-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-05 23:05:51 IP:61.227.xxx.xxx 未訂閱
看錯誤訊息的內容是由於 TXYZPlot 的元件所繼承的 TControl 中在 overwrite 虛擬函式時發生定義不一致. 換言之,也就是 BCB 1.0 中的 TControl 與 BCB6 中的 TControl 物件定義不同.    所以囉..再找是否有更新版,或替代的元件.
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-06 08:13:03 IP:203.204.xxx.xxx 未訂閱
Hi~hugojack 將TXYZPlot.h中的    virtual void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);    virtual void __fastcall MouseDown(TMouseButton Button,TShiftState Shift, int X, int Y);    virtual void __fastcall MouseUp(TMouseButton Button,TShiftState Shift, int X, int Y);    virtual void __fastcall DblClick(void); 改為 DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y); .......等等
hugojack
一般會員


發表:6
回覆:2
積分:1
註冊:2004-12-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-06 14:20:58 IP:163.25.xxx.xxx 未訂閱
引言: Hi~hugojack 將TXYZPlot.h中的 virtual void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y); virtual void __fastcall MouseDown(TMouseButton Button,TShiftState Shift, int X, int Y); virtual void __fastcall MouseUp(TMouseButton Button,TShiftState Shift, int X, int Y); virtual void __fastcall DblClick(void); 改為 DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y); .......等等
我改後試的結果是沒有錯誤... 但是安裝後卻沒有出現ICON在VCL Palette中的Additional內.... 這是什麼原因?? 我有把dcr檔放在同一個資料夾且包含在同一個Package內... 請大家幫幫忙...拜託拜託... 謝謝~~
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-06 17:19:10 IP:203.204.xxx.xxx 未訂閱
hi~hugojack 我剛TRY了一下真的有看不到元件的問題~你可照我下面的方式修改一下原始碼即可修正這個問題 在H中增加
 
#include "ExtCtrls.hpp"    後面增加粗體部分
class PACKAGE TXYZPlot : public TPaintBox    在CPP中將標題檔範圍改成bcb6的宣告方式
#include 
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "TXYZPlot.dcr"
#include <math.h>
#include 
#include "TXYZPlot.h"     ...以下改粗體的地方
namespace Txyzplot
{
        void __fastcall PACKAGE Register()
        {
                TComponentClass classes[1] = {__classid(TXYZPlot)};
                RegisterComponents("Additional", classes, 0);
        }
}
.....
將這裡改為後者
//static inline TXYZPlot *ValidCtrCheck()
//{
//        return new TXYZPlot(NULL);
//}
static inline void ValidCtrCheck(TXYZPlot *)
{
        new TXYZPlot(NULL);
}
完成存檔後,重新Install Component即可,可能會有一個錯誤提示~此為正常現象~因為使用到DYNAMIC宣告的關係,完成後~即可在Additional頁面看到TXYZ元件~ 祝 成功
hugojack
一般會員


發表:6
回覆:2
積分:1
註冊:2004-12-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-06 20:00:50 IP:163.25.xxx.xxx 未訂閱
引言: hi~hugojack 我剛TRY了一下真的有看不到元件的問題~你可照我下面的方式修改一下原始碼即可修正這個問題 在H中增加
 
#include "ExtCtrls.hpp"    後面增加粗體部分
class PACKAGE TXYZPlot : public TPaintBox    在CPP中將標題檔範圍改成bcb6的宣告方式
#include 
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "TXYZPlot.dcr"
#include <math.h>
#include 
#include "TXYZPlot.h"     ...以下改粗體的地方
namespace Txyzplot
{
        void __fastcall PACKAGE Register()
        {
                TComponentClass classes[1] = {__classid(TXYZPlot)};
                RegisterComponents("Additional", classes, 0);
        }
}
.....
將這裡改為後者
//static inline TXYZPlot *ValidCtrCheck()
//{
//        return new TXYZPlot(NULL);
//}
static inline void ValidCtrCheck(TXYZPlot *)
{
        new TXYZPlot(NULL);
}
完成存檔後,重新Install Component即可,可能會有一個錯誤提示~此為正常現象~因為使用到DYNAMIC宣告的關係,完成後~即可在Additional頁面看到TXYZ元件~ 祝 成功
謝謝啦...我已經安裝成功了.... 非常的感謝~~
系統時間:2024-05-04 18:16:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!