滑鼠移過~出現值!? |
答題得分者是:P.D.
|
KK0958
一般會員 ![]() ![]() 發表:20 回覆:19 積分:7 註冊:2007-02-13 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
KK0958
一般會員 ![]() ![]() 發表:20 回覆:19 積分:7 註冊:2007-02-13 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
procedure TForm_Rep591.DBChart1AfterDraw(Sender: TObject);
Procedure DrawVerticalLine(ax,ay: Integer); begin with DBChart1, Canvas do begin Pen.Color:= clGray; Pen.Style:= psSolid; Pen.Mode := pmBlack; //pmXor; Pen.Width:= 1; MoveTo(ax,ChartRect.Top - Height3D); LineTo(ax,ChartRect.Bottom - Height3D); Font.Size:= 7; Font.Name:= '細明體'; Font.Color:= clBlack; TextOut(ax-90,ay 4,SysUt.DayFormat(DM_Rep591.IBQ_D8001FORMDATE.AsString, '/',U_VarDef.cdatedigit)) Font.Color:= clNavy; TextOut(ax-26,ay 4,'成本:' DM_Rep591.IBQ_D8001GCOST.AsString); end; end; var TmpX: Integer; begin with DM_Rep591 do try TmpX:= Series1.CalcXPosValue(Series1.XValue[IBQ_D8001.RecNo-1]); if PtInRect(DBChart1.ChartRect, Point(TmpX-DBChart1.Width3D,Round(DBChart1.Height/2) DBChart1.Height3D)) then DrawVerticalLine(TmpX,0); except end; end; 不知道你用的是什麼圖表工具,我這是DBChart的作法, Procedure DrawVerticalLine 是在圖表上畫一條y軸線條這個功能也是向站上前輩請教的,抱歉(我忘了是那一位),你可以參考看看,希望對你有幫助
編輯記錄
P.D. 重新編輯於 2007-09-07 01:38:49, 註解 無‧
|
KK0958
一般會員 ![]() ![]() 發表:20 回覆:19 積分:7 註冊:2007-02-13 發送簡訊給我 |
|
wameng
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
對不起,程式檔包含太多物件無法釋出,我將圖片貼上讓你參考,有關如何在dbchart上做出如圖的額外顯示,上面的程式碼已經是全部寫法,另外用滑鼠要判斷位置做出相對的反應其實並不太好弄,因為要計算很多數據,不如建議你如本圖方式,利用一個query,在query.onafterscroll 的事件上寫,先做出你想要的功能,再漸漸改到以mouse移動反應
procedure TDM_Rep591.IBQ_D8001AfterScroll(DataSet: TDataSet); begin Form_Rep591.DBChart1.Repaint; end; |
KK0958
一般會員 ![]() ![]() 發表:20 回覆:19 積分:7 註冊:2007-02-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |