Delphi 制作股票分时图

背景:

利用Delphi开发股票分时图。

版本:

Delphi7

正文:


思路如下:

新建一个panel,在其上根据股票分时数据用canvas画出分时图;

遇到的问题:

1 Delphi的panel不自带canvas,需要用TControlCanvas提供画布作画;

2 画出的分时图闪烁,利用内存位图bitmap解决;

代码如下:
procedure TForm2.DrowMin(Sender: TObject; Panel: TFlatPanel);
var
  BMP:TBitMap;
  PanelCanvas:TControlCanvas;
begin
  BMP:=TBitMap.Create;
  PanelCanvas:=TControlCanvas.Create;
  
  PanelCanvas.Control:= panel;
  with BMP.Canvas do
  // 画图 
  begin
      Brush.Color:= clBlack;
      FillRect(ClientRect);

      pen.Color := clBlack;
      pen.Width := Panel.Height;
      MoveTo(Panel.Left, 0);
      LineTo(Panel.Left + Panel.Width, 0);
      pen.Width := 1;
      // ......此处省略画图代码
  end;
  //  把位图BMP复制给panel的画布PanelCanvas
  bitblt(PanelCanvas.Handle, 0, 0, Panel.Width, Panel.Height, BMP.Canvas.Handle, 0, 0, SRCCOPY);
  
  PanelCanvas.Free;
  BMP.Free;
end;

效果图如下:



PS:

如有疑问,欢迎留言大笑



{ 更新日志 2010.10.27 增加采用注册回调函数方式获取数据,详细函数声明请参考 uFunction.pas 相关数据结构声明请参考 TDXGrobal.pas 以S_打头的均为注册回调函数的函数 procedure S_InitMarketData (TDXManager: longword; CallBack :TOnDecodePacket_INITMARKET); stdcall; procedure S_GetPK (TDXManager: longword; CallBack :TOnDecodePacket_PKDAT); stdcall; procedure S_GetTestRealPK (TDXManager: longword; CallBack :TOnDecodePacket_REALPK); stdcall; procedure S_GetKDays (TDXManager: longword; CallBack :TOnDecodePacket_DAYS); stdcall; procedure S_GetDeals (TDXManager: longword; CallBack :TOnDecodePacket_DEALS); stdcall; procedure S_GetMins (TDXManager: longword; CallBack :TOnDecodePacket_MINS); stdcall; procedure S_Get_QH_KDays (TDXManager: longword; CallBack :TOnDecodePacket_FUTURES_DAYS); stdcall; procedure S_Get_QH_TestRealPK (TDXManager: longword; CallBack :TOnDecodePacket_FUTURES_PKDAT); stdcall; procedure S_Get_QH_Mins (TDXManager: longword; CallBack :TOnDecodePacket_FUTURES_MINS); stdcall; procedure S_Connected (TDXManager: longword; CallBack :TRNotifyEvent); stdcall; procedure S_DisConnected (TDXManager: longword; CallBack :TRNotifyEvent); stdcall; 2010.10.26 //期货,函数用法基本同普通股票函数,在使用 R_Connect 时,请指定期货服务器地址及端口(7721) procedure R_Get_QH_KDays (TDXManager: longword; StkCode :PChar; startcount, count: integer); stdcall; procedure R_Get_QH_TestRealPK (TDXManager: longword; StkCode :PChar); stdcall; } { ****************************************** 以下为Delphi版的数据结构和相关调用函数声明 使用其他开发语言的,只要转换成自己语言的相应格式就可以了 目前在 RSRStock.dll 中,提供了如下几个导出函数: DLLVER, R_Open, R_Close, R_Connect, R_DisConnect, R_InitMarketData, R_GetPK, R_GetTestRealPK, R_GetKDays, R_GetDeals, R_GetMins, R_GetMarket, R_GetMarketByStockCode, R_GetMarketByStockName,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值