我爱builder

C++Builder 程序员博客

我利用c++ builder6制作了一个com组件,不过我建的工程没有改名,是project1,所以生成的dll也是project.dll,我想把这个名字改成别的,如何改啊??也就是说我要把这个工程名改了。

我试了一种方法,就是把工程另存为别的名字,运行之,虽然生成的dll名字改了,注册显示的也是新名字的,但是我在导入的时候还是原来的那个工程的名字。。。直接rename就可以了!
组件的名称和文件的名称没有直接的关系.COM组件名称是在注册表中登记的名字

  • Filed under: C++ Builder
  • 各位好,我现在想创建的一个应用程序,类似资源管理器,左边是一个TreeView的控件,右边是工作用的界面,现在我想在TreeView控件里点击不同的节点时,右边可以切换成不同的工作界面,请问该怎么做,谢谢了

    这两天都有人问这样的问题
    思路lz描述的很清楚了 你就点击TreeView 获取节点标识
    然后根据标识 显示对应的东西 有什么难点?响应事件,切换界面。经曲的资源管理器界面,一般是左边一个TreeView,右边一个ListView,顶部是Menu + ToolBar,底部是StatusBar

    在TreeView的OnClick中,根据你的需求(谁知道你要切换什么界面呢),动态的增加删除右侧ListView中的项目就行了,或者交替显示多个不同的ListView。如此而已。

    模糊的需求只能模糊的回答。父节点+…+父节点+单击节点的名称=完整路径
    listview显示路径中的所有文件和文件夹。谢谢,右边的工作界面比较复杂,包括按钮和一些图表控件以及PageControl控件,基本的思路我明白了,刚学BCB,还不是很熟,谢谢zzbinfo和妖哥前辈们的解答

  • Filed under: C++ Builder
  • 可是现在只能找到C++Builder5的组件大全,我想要6.0的。
    顺便问一下,Delphi的组件和C++Builder的完全一样么?
    感觉找一本基础的东西很难
    语法不一样 
    控件的用法都一样的
    (除了某些控件在版本自身上的差异)
    谢谢!去找来看看!嘿<
    <

    <

  • Filed under: C++ Builder
  • 自制组件,如果属性与事件没有设置默认值,需要在构造函数清零吗?

    还是编译器自动清零??构造函数清零不需要!一般都需要初始化,这样安全些。最好还是初始化一下。。。写代码的一种习惯,一般都先初始化,防止出现非法访问.

  • Filed under: C++ Builder
  • 人们说bcb6安装好后就有Fastnet组件,我的没有,是没安装好?我修复了下还是没有。
    于是我想下这个组件然后安装。可是别人机子上的Fastnet组件是个独立出来的,而我的里面的比如NMFTP组件却安装到了Internet的下面。我是直接按
    解压缩到某一目录下,在CB中Open Project–>
    找到lib目录下的dclusr.bpk–>点击Contains–>Add–>
    Browser–>找到NMFtp.pas–>点击OK添加进来–>再点击
    Requires–>Add->找到lib目录下的bcbsmp.bpi–>添加进
    来–>Compile之–>成功以后点击Install安装–>保存这
    个工程–>把NMFtp.hpp拷贝到CB的Include目录下!
    方法安装的。这里的问题出现在什么地方呢?望高手指点下。我怎么样才能把那么多的Fastnet组件一次安装好而不是一个一个的点呢??菜单 component -》 install packages 在弹出对话框中 点击 “add”按钮, 选择bcbin目录下得dclnmf60.bpl然后加载即可如上,问题已经解决。不过首先要把曾经安装的组件删除。
    在此说声谢谢。同谢
    原来这样啊

    菜鸟飘过我的怎么也不行啊

  • Filed under: C++ Builder
  • 各位大大 现在急需比较新的能用的破解版VCLSkins 下了五个版本 都或多或少有问题 请不吝赐予则个 
    邮箱:mpfgogo@gmail.com三方控件少用
    避免一些隐在的问题害你<

    我手上有几个版本 却没有发给你 
    可以结贴了 你懂的貌似老妖的网站上有的,www.ccrun.com,帮老妖做回广告,哈。您别说,还真有:http://www.ccrun.com/view.asp?id=159<
    VCLSkin的作者好像是中国人,如果经济能力允许,建议购买正版。<

  • Filed under: C++ Builder
  • 一个多线程程序,结束时提示invalid point operation,停在_FreeMem(Self);一行

    我把其中一个线程注释掉就没有这个错误了,但跟踪发现把该线程手动结束、waitfor之后,再delete,都没有问题,最后程序是跑到一些我不了解的VCL库文件里才出错的

    codeguard只给出一个错误

    Error 00072. 0×310000 (Thread 0×07D0):
    Bad parameter: A bad object (0×14D8190) has been passed to the function.
    delete(0×014D8190) 

    Call Tree:
      0×32AB16EB(=CC32100MT.DLL:0×01:0B06EB)
      0×32AB0A5D(=CC32100MT.DLL:0×01:0AFA5D)
      0×32AB1A52(=CC32100MT.DLL:0×01:0B0A52)
      0×00697C9D(=mywork2.exe:0×01:296C9D)
      0×7C92327A(=ntdll.dll:0×01:00227A)
      0×32AB34A3(=CC32100MT.DLL:0×01:0B24A3)

    但是看不懂……我已经在设置里打开了行号输出,但是这个报告没有给出任何行号,我只能找到那个0×014D8190的地址,但还是看不懂汇编

    嗯,应该就是一个delete()函数的的参数不对,可能这个东西已经被释放掉了,但是在我的代码里找不到这样的函数,可能是VCL库里面的,就是不知道怎么找啊,读不懂CG给出的信息把cg关掉,程序会提示出错吗?一样出错,出了没有CG以外别的提示都是一样的,就是_FreeMem(Self)这个地方,可我不会从这个地方跟踪到底哪个东西出了问题跟踪进vcl代码里面,其实对调试的意义不大了,还是仔细检查看看那句代码出的问题吧

    晕,找到了,用一个对象直接对另一个对象赋值,但是这个类里面有new出来的TStringList,赋值时把指针也拷过来了,结果先释放的那个对象把被复制的TStringList释放了,后释放的那个对象就释放不成了……菜鸟啊~~以后再也不敢乱拷东西了

  • Filed under: C++ Builder
  • 在界面上放了一个Tcxgrid控件,Tcxgrid包含一个Level,Level里面是一个TCxGridTableView,这个table包含a、b、c、d4列,通过a列来分组。请教一下:我知道a列的一个值(我知道某个组的值),我怎么找到这个组所在的行?
    谢谢

    在Delphi板块也发了:http://topic.csdn.net/u/20100814/17/7e623546-4806-4f8d-a19b-14e81c7c0672.html?67026

  • Filed under: C++ Builder
  • 我想显示定义了三个80000点的数组。将数组显示给TChart,但是速度很慢,一会就会卡死,我有两个问题,一是怎么能更快的显示出来曲线,2是怎么样才能不卡死机,是我的数组定义太大了么?代码贴一下,希望高手帮忙指点,谢谢了
      int i,k,m,n,pTempBuf;double a[80000],b[80000],c[80000];
      AnsiString AxS,TempStr1,TempStr2,TempStr3;
      int j;
      j=RzComboBox1->Value.ToInt();
      n=RzComboBox2->Value.ToInt()-1;
      // Chart1->Visible=true;
      // Chart2->Visible=true;
      Chart3->Visible=true;

      OpenDialog->Filter = "*.txt(原始数据)|*.txt";

      if( OpenDialog->Execute() )
      {
      // LoadHistory = true;
      FormMemo->Memo->Lines->LoadFromFile( OpenDialog->FileName );
      Chart3->AutoRepaint = false;
      Chart3->Series[0]->Clear();
      Chart3->Series[1]->Clear();
      Chart3->Series[2]->Clear();

      for(i=n*2006+3,pTempBuf=0; i<n*2000+j; i++,pTempBuf++)
      //{ if(i<50)
      { if( i=n*2006+3)
      i=i+n*2006+3;
      AxS = FormMemo->Memo->Lines->Strings[i];
      k = AxS.Pos(". ");
      //ThisDateTime = StrToDateTime(AxS.SubString(k,19));
      TempStr1 = AxS.SubString(k+4,6);
      TempStr2 = AxS.SubString(k+15,6);
      TempStr3 = AxS.SubString(k+25,6);
      a[pTempBuf] = TempStr1.Trim().ToDouble();
      b[pTempBuf] = TempStr2.Trim().ToDouble()/10;
      c[pTempBuf] = TempStr3.Trim().ToDouble()*10;
      Chart3->Series[0]->AddXY(pTempBuf,a[pTempBuf],"",(TColor)clTeeColor);
      Chart3->Series[1]->AddXY(pTempBuf,b[pTempBuf],"",(TColor)clTeeColor);
      Chart3->Series[2]->AddXY(pTempBuf,c[pTempBuf],"",(TColor)clTeeColor);
      // }
      Chart3->AutoRepaint = true;
      Chart3->Repaint();
      }
      }因为需要显示80000个数据如果一下都显示,不太好办,能否分段显示?就是移动式显示<
    怎么能让Chart快速的显示很多数据呢?大家有什么好的算法么?我的数据存在.txt中。 多线程 一个线程划一部分行不行呢大数据量的曲线用fastlinechart,不要用linechart用Fastline Series[3];
    在for前加入
    Series[0]->BeginUpdate();
    Series[1]->BeginUpdate();
    Series[2]->BeginUpdate();

    在for结束后加入
    Series[0]->EndUpdate();
    Series[1]->EndUpdate();
    Series[2]->EndUpdate();<
    <
    <
    大家都很厉害啊点数太多了,还是要想办法减少点数同时显示80000个点太多了,而且没有必要,主流显示器最多能显示多少像素?
    tchart画画本来就是一件很慢的事,帮助里有一节详细说明了实时曲线的性能问题,并列举了大量建议,不妨看看
    不过说到底,还是两条最有效,减少点数和升级硬件用addarray显示器本身就显示不了那么多的数据量
    可以把for循环的范围缩小到TChart能显示的像素大小,这样即可以完美的显示又可以充分利用数据。
    具体做法:
    要算出i的步长,
    int step=80000/TChart->Width;)//这里的TChart->Width应该是具体图表显示区域
    for(i=n*2006+3,pTempBuf=0; i<n*2000+j; i++,pTempBuf+=step)

  • Filed under: C++ Builder
  • 我想显示定义了三个80000点的数组。将数组显示给TChart,但是速度很慢,一会就会卡死,我有两个问题,一是怎么能更快的显示出来曲线,2是怎么样才能不卡死机,是我的数组定义太大了么?代码贴一下,希望高手帮忙指点,谢谢了
      int i,k,m,n,pTempBuf;double a[80000],b[80000],c[80000];
      AnsiString AxS,TempStr1,TempStr2,TempStr3;
      int j;
      j=RzComboBox1->Value.ToInt();
      n=RzComboBox2->Value.ToInt()-1;
      // Chart1->Visible=true;
      // Chart2->Visible=true;
      Chart3->Visible=true;

      OpenDialog->Filter = "*.txt(原始数据)|*.txt";

      if( OpenDialog->Execute() )
      {
      // LoadHistory = true;
      FormMemo->Memo->Lines->LoadFromFile( OpenDialog->FileName );
      Chart3->AutoRepaint = false;
      Chart3->Series[0]->Clear();
      Chart3->Series[1]->Clear();
      Chart3->Series[2]->Clear();

      for(i=n*2006+3,pTempBuf=0; i<n*2000+j; i++,pTempBuf++)
      //{ if(i<50)
      { if( i=n*2006+3)
      i=i+n*2006+3;
      AxS = FormMemo->Memo->Lines->Strings[i];
      k = AxS.Pos(". ");
      //ThisDateTime = StrToDateTime(AxS.SubString(k,19));
      TempStr1 = AxS.SubString(k+4,6);
      TempStr2 = AxS.SubString(k+15,6);
      TempStr3 = AxS.SubString(k+25,6);
      a[pTempBuf] = TempStr1.Trim().ToDouble();
      b[pTempBuf] = TempStr2.Trim().ToDouble()/10;
      c[pTempBuf] = TempStr3.Trim().ToDouble()*10;
      Chart3->Series[0]->AddXY(pTempBuf,a[pTempBuf],"",(TColor)clTeeColor);
      Chart3->Series[1]->AddXY(pTempBuf,b[pTempBuf],"",(TColor)clTeeColor);
      Chart3->Series[2]->AddXY(pTempBuf,c[pTempBuf],"",(TColor)clTeeColor);
      // }
      Chart3->AutoRepaint = true;
      Chart3->Repaint();
      }
      }因为需要显示80000个数据如果一下都显示,不太好办,能否分段显示?就是移动式显示<
    怎么能让Chart快速的显示很多数据呢?大家有什么好的算法么?我的数据存在.txt中。 多线程 一个线程划一部分行不行呢大数据量的曲线用fastlinechart,不要用linechart用Fastline Series[3];
    在for前加入
    Series[0]->BeginUpdate();
    Series[1]->BeginUpdate();
    Series[2]->BeginUpdate();

    在for结束后加入
    Series[0]->EndUpdate();
    Series[1]->EndUpdate();
    Series[2]->EndUpdate();<
    <
    <
    大家都很厉害啊点数太多了,还是要想办法减少点数同时显示80000个点太多了,而且没有必要,主流显示器最多能显示多少像素?
    tchart画画本来就是一件很慢的事,帮助里有一节详细说明了实时曲线的性能问题,并列举了大量建议,不妨看看
    不过说到底,还是两条最有效,减少点数和升级硬件用addarray显示器本身就显示不了那么多的数据量
    可以把for循环的范围缩小到TChart能显示的像素大小,这样即可以完美的显示又可以充分利用数据。
    具体做法:
    要算出i的步长,
    int step=80000/TChart->Width;)//这里的TChart->Width应该是具体图表显示区域
    for(i=n*2006+3,pTempBuf=0; i<n*2000+j; i++,pTempBuf+=step)

  • Filed under: C++ Builder
  • 类别

    最新

    标签

    链接


    存档