绘制一个曲线图,因为数据量比较大会很长,想加一个滚动条,用什么方法比较好?解决方法

绘制一个曲线图,因为数据量比较大会很长,想加一个滚动条,用什么方法比较好?
初学c++builder,没什么经验,在绘图时遇到一些问题:
1.以前用panel和paintbox画过没有滚动条的曲线,不知道能不能用上?
  尝试过使用chart直接画,效果不好,不知道PerformanceGraph行不行?
  请各位帮帮忙,分析一下哪种方法可行?
  (数据存储在数组中,大小可变,但数据量有点大)
2.希望实现鼠标移动到曲线上时能够动态显示数据大小,最好不显示在edit当中,类似鼠标提示一样的动态提示

请各位多多指教。。。
------解决方案--------------------
1.我是在ScrollBox里放Image
2.用汽泡提示

  void __fastcall TForm1::BalloonHint(String msg)
{
   NOTIFYICONDATA   nid;
    Shell_NotifyIcon(NIM_DELETE,   &nid);//删除提示框
    ZeroMemory(&nid,   sizeof(nid));   //   将结构icondata的各域初始化为0

    nid.cbSize   =   sizeof(nid);
    nid.hWnd   =   Handle;
    nid.uID   =   NULL;
    nid.uFlags   =   NIF_MESSAGE   
------解决方案--------------------
   NIF_ICON   
------解决方案--------------------
   NIF_TIP   
------解决方案--------------------
   NIF_INFO;   //   关键1
    nid.hIcon   =   Application->Icon->Handle;
   // nid.uCallbackMessage   =   MY_ICONMESSAGE;
    nid.dwInfoFlags   =   1;
    nid.uTimeout   =   1000;
    strncpy(nid.szInfo,  msg.c_str(),   sizeof(nid.szInfo));   //   关键2
    strncpy(nid.szInfoTitle,   Form1->Caption.c_str(), sizeof(nid.szInfoTitle));   //   关键3
//    strncpy(nid.szTip,   (g_strAppTitle   +   "   -   by   ccrun").c_str(),   sizeof(nid.szTip));

    Shell_NotifyIcon(NIM_ADD,   &nid);//显示提示框
    ::Sleep(4000);
    Shell_NotifyIcon(NIM_DELETE,   &nid);//删除提示框

 }
//=============================================================================

------解决方案--------------------
他这个InitScroll是一个自定义函数,你在.h的Form类里声明一下,然后将InitScroll的定义部分复制到.cpp文件中就可以用了。


画图的数据在数组中,你弄个循环调用DrawCurve即可。
------解决方案--------------------
呵呵,DrawCurve就是代表你自己写的画图函数,随便起了个名字而已