背景:
利用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:
如有疑问,欢迎留言
;