?? kxianmain.~pas
字號(hào):
SecLineData[i].sBatchNo :=SecCurrentCode;
curTmp :=round(Fields.Fields[5].AsFloat *10);
if CurTmp >3000 then CurTmp:= lastTmp;
if CurTmp <-400 then CurTmp:= LastTmp;
SecLineData[I].iOpenT:= curTmp;//OPEN
MINT := CurTmp;
MAXT := CurTmp;
j :=0;
AMT :=0;
while (j <= MINSTEP -1) AND (NOT adodtest.EOF) do
begin
curTmp :=round(Fields.Fields[5].AsFloat *10);
if CurTmp >3000 then CurTmp:= lastTmp;
if CurTmp <-400 then CurTmp:= LastTmp;
IF MINT >CurTmp THEN MINT := CurTmp;
IF MAXT <CurTmp THEN MAXT := CurTmp;
SecLineData[I].iCloseT:= curTmp; //CLOSE
AMT := AMT + SecLineData[I].iCloseT;
lastTmp := CurTmp;
j := j+1;
NEXT;
end ;
SecLineData[I].iMaxT:= MAXT; //High
SecLineData[I].iMinT:= MINT; //Low
SecLineData[i].dtDateTime := Fields.Fields[2].AsDateTime;
SecLineData[I].iFlag:= minutesbetween(begintime, SecLineData[i].dtDateTime); //存放標(biāo)識(shí)flag
SecLineData[I].iAvgT:= ROUND(AMT/J);
I :=I+1;
END;
close;
SecDayCount := I;
End
End;
Procedure TFormKXianMain.DrawEMPTY(Sender: Tobject);
Var TempString:String;
VAR KWIDTH :INTEGER;
Begin
with ImageWork do
If DayCount<=0 Then
Begin
Canvas.Brush.Color:=clWhite;//clBLACK;
Canvas.Brush.style:=bsSolid;
Canvas.Pen.Style:=psSolid ;
Canvas.Pen.Color:=clRed;//CLWHITE;//clMaroon;
Canvas.FillRect(Rect(0,0,PaintWidth,PaintHeight));
//左邊豎直線
Canvas.Pen.Color:=clRed;//CLWHITE;//;clred;
Canvas.MoveTo(LeftX-1,Topy);
Canvas.LineTo(LeftX-1,PaintHeight);
//上邊水平線
Canvas.MoveTo(0,TopY);
Canvas.LineTo(PaintWidth,TopY);
Canvas.MoveTo(0,TopY-2);
Canvas.LineTo(PaintWidth,TopY-2);
//右邊豎直線
Canvas.MoveTo(PaintWidth-RightX,TopY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight);
//下邊水平線
Canvas.MoveTo(0,PaintHeight-BottomY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight-BottomY);
//畫1/6線
PageTopY:=PaintHeight-BottomY-topy;
Canvas.Pen.Style:=psDot;
Canvas.Pen.Color:=CLGRAY;//clMaroon;
Canvas.MoveTo(LeftX ,topy + Round(PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(2*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(2*PageTopY/6));
Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(LeftX ,topy + Round(3*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(3*PageTopY/6));
Canvas.Pen.Style:=psDot;
Canvas.MoveTo(LeftX ,topy + Round(4*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(4*PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(5*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(5*PageTopY/6));
KWIDTH := PAINTWIDTH - LEFTX - RIGHTX;
Canvas.MoveTo(LeftX + ROUND(KWIDTH/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*2/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*2/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*3/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*3/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*4/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*4/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*5/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*5/6),PaintHeight-BottomY);
Canvas.Font.Color := clRED;
Canvas.Brush.Color:=clWhite;//clBlack;
Canvas.Font.Size:=11;
Canvas.Font.name:='宋體';
TempString:=' 批溫度記錄查看器 V1.0, Designed by 黃春森, 2007.7';
Canvas.TextOut(1,1,TempString);
End;
End;
Procedure TFormKXianMain.DrawEMPTYSec(Sender: Tobject);
Var TempString:String;
VAR KWIDTH :INTEGER;
Begin
with imageSec do
If SecDayCount<=0 Then
Begin
Canvas.Brush.Color:=clWhite;//clbLACK;
Canvas.Brush.style:=bsSolid;
Canvas.Pen.Style:=psSolid ;
Canvas.Pen.Color:=clMaroon;
Canvas.FillRect(Rect(0,0,PaintWidth,PaintHeight));
//左邊豎直線
Canvas.Pen.Color:=clRED;//CLWHITE;//clred;
Canvas.MoveTo(LeftX-1,Topy);
Canvas.LineTo(LeftX-1,PaintHeight);
//上邊水平線
Canvas.MoveTo(0,TopY);
Canvas.LineTo(PaintWidth,TopY);
Canvas.MoveTo(0,TopY-2);
Canvas.LineTo(PaintWidth,TopY-2);
//右邊豎直線
Canvas.MoveTo(PaintWidth-RightX,TopY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight);
//下邊水平線
Canvas.MoveTo(0,PaintHeight-BottomY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight-BottomY);
//畫1/3線
PageTopY:=PaintHeight-BottomY-topy;
Canvas.Pen.Style:=psDot;
Canvas.Pen.Color:=CLGRAY;//clMaroon;
Canvas.MoveTo(LeftX ,topy + Round(PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(2*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(2*PageTopY/6));
Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(LeftX ,topy + Round(3*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(3*PageTopY/6));
Canvas.Pen.Style:=psDot;
Canvas.MoveTo(LeftX ,topy + Round(4*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(4*PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(5*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(5*PageTopY/6));
KWIDTH := PAINTWIDTH - LEFTX - RIGHTX;
Canvas.MoveTo(LeftX + ROUND(KWIDTH/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*2/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*2/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*3/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*3/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*4/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*4/6),PaintHeight-BottomY);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*5/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*5/6),PaintHeight-BottomY);
Canvas.Font.Color := clRED;
Canvas.Brush.Color:=clBlack;
Canvas.Font.Size:=9;
Canvas.Font.name:='宋體';
TempString:='標(biāo)準(zhǔn)對(duì)照';
Canvas.TextOut(1,1,TempString);
End;//數(shù)據(jù)集中數(shù)據(jù)個(gè)數(shù)大于0
End;
//畫線的初始化
Procedure TFormKXianMain.DrawLineInIt(Sender: Tobject);
Var li_cnt, li_num : integer;//計(jì)算總許可格子數(shù)
Begin
If DayCount<=0 Then exit;
BeginDate:=0;
enddate :=daycount -1;
li_cnt :=trunc(int((PaintWidth-RightX-leftx)/ DefaultWidth)) ;
if currentX < leftx then CurrentX := LeftX + Round((DefaultWidth-1)/2);
li_num := Trunc((CurrentX - leftx)/DefaultWidth+0.5);
leftDate := CurrentDate - li_num;
if leftDate <0 then leftDate :=0;
RightDate := leftdate + li_cnt -1;
if RightDate > endDate then RightDAte := endDate;
CurrentX:=LeftX +(currentDate-LeftDate)*DefaultWidth + Round((DefaultWidth-1)/2);
End;
Procedure TFormKXianMain.DrawLineInItSec(Sender: Tobject);
Var li_cnt, li_num : integer;//計(jì)算總許可格子數(shù)
Begin
If SecDayCount<=0 Then exit;
SecBeginDate:=0;
SecEnddate :=SecDaycount -1;
li_cnt :=trunc(int((PaintWidth-RightX-leftx)/ DefaultWidth)) ;
if SeccurrentX < leftx then SecCurrentX := LeftX + Round((DefaultWidth-1)/2);
li_num := Trunc((SecCurrentX - leftx)/DefaultWidth+0.5);
SecLeftDate := SecDate - li_num;
if SecLeftDate <0 then SecLeftDate :=0;
SecRightDate := SecLeftdate + li_cnt -1;
if SecRightDate > SecEndDate then SecRightDAte := SecEndDate;
SecCurrentX:=LeftX +(SecDate-SecLeftDate)*DefaultWidth + Round((DefaultWidth-1)/2);
end;
//畫線
Procedure TFormKXianMain.EnlageLineInIt(Sender: Tobject; flag : integer);
var oldmsi , li_tmp:integer;
Var li_cnt : integer;//計(jì)算總許可格子數(shù)
Begin
oldmsi :=0;
If DayCount<=0 Then exit;
if flag <0 then oldmsi :=msi - 1;
if flag >=0 then oldmsi :=msi+1;
if msi <0 then msi :=0;
if msi >length(ms)-1 then msi :=length(ms)-1;
BeginDate:=0;
EndDate:=DayCount-1;
li_cnt :=trunc(int((PaintWidth-RightX-leftx)/ DefaultWidth)) ;
currentDate:=round(currentDate*Ms[oldmsi]/MS[msi]); //計(jì)算當(dāng)前位置
if currentDate> Daycount-1 then currentDate :=Daycount -1;
if DayCount <= Li_cnt then
begin //總格子少時(shí)
LeftDate :=0;
RightDate :=EndDate;
end
else
Begin //總格子多時(shí),放大或縮小后的當(dāng)前格位置,緊接計(jì)算Leftdate和RightDate
leftdate :=round(LeftDate*MS[oldmsi]/MS[msi]); //計(jì)算左邊的起始位置
if currentdate - leftDate > li_cnt-1 then leftDate :=currentdate-li_cnt+1;
RightDate := LeftDate +li_cnt-1;
if RightDate > EndDate then
begin
li_tmp := RightDate - Enddate;
RightDate := RightDate- li_tmp;
Leftdate :=Leftdate -Li_tmp;
end
end;
CurrentX:=LeftX +(currentDate-LeftDate)*DefaultWidth + Round((DefaultWidth-1)/2);
End;
Procedure TFormKXianMain.EnlageLineInItSec(Sender: Tobject; flag : integer);
var oldmsi , li_tmp:integer;
Var li_cnt : integer;//計(jì)算總許可格子數(shù)
Begin
oldmsi :=0;
If SecDayCount<=0 Then exit;
if flag <0 then oldmsi :=msi - 1;
if flag >=0 then oldmsi :=msi+1;
if msi <0 then msi :=0;
if msi >length(ms)-1 then msi :=length(ms)-1;
SecBeginDate:=0;
SecEndDate:=SecDayCount-1;
li_cnt :=trunc(int((PaintWidth-RightX-leftx)/ DefaultWidth)) ;
SecDate:=round(SecDate*Ms[oldmsi]/MS[msi]); //計(jì)算當(dāng)前位置
if SecDate> SecDaycount-1 then SecDate :=SecDaycount -1;
if SecDayCount <= Li_cnt then
begin //總格子少時(shí)
SecLeftDate :=0;
SecRightDate :=SecEndDate;
end
else
Begin //總格子多時(shí),放大或縮小后的當(dāng)前格位置,緊接計(jì)算Leftdate和RightDate
Secleftdate :=round(SecLeftDate*MS[oldmsi]/MS[msi]); //計(jì)算左邊的起始位置
if SecDate - SecleftDate > li_cnt-1 then SecleftDate :=Secdate-li_cnt+1;
SecRightDate := SecLeftDate +li_cnt-1;
if SecRightDate > SecEndDate then
begin
li_tmp := SecRightDate - SecEnddate;
SecRightDate := SecRightDate- li_tmp;
SecLeftdate :=SecLeftdate -Li_tmp;
end
end;
SecCurrentX:=LeftX +(SecDate-SecLeftDate)*DefaultWidth + Round((DefaultWidth-1)/2);
End;
Procedure TFormKXianMain.DrawLine(Sender: Tobject);
Var kpjg,spjg,zgjg,zdjg,PJJG:Integer;
Var x1,x2,y1,y2,x3,y3,x4,y4, AX,AY,PREAX,PREAY:Integer;
Var I,Kheight:Integer;
Var TempString,OutStr, TEMPSTR:String;
Var TempLen,StrLen:Integer;
VAR KWIDTH :INTEGER;
VAR KTMP, TMPT: INTEGER;
VAR KXISHU :REAL;
Begin
with imageWork do
If DayCount>0 Then
Begin
Canvas.Brush.Color:=clWhite;//clBlack;
Canvas.Brush.style:=bsSolid;
Canvas.Pen.Style:=psSolid;
Canvas.FillRect(Rect(0,TOPY,PaintWidth,PaintHeight));
//左邊豎直線
Canvas.Pen.Color:=clRED;//CLWHITE;//clred;
Canvas.MoveTo(LeftX-1,Topy);
Canvas.LineTo(LeftX-1,PaintHeight);
//上邊水平線
Canvas.MoveTo(0,TopY);
Canvas.LineTo(PaintWidth,TopY);
Canvas.MoveTo(0,TopY-2);
Canvas.LineTo(PaintWidth,TopY-2);
//右邊豎直線
Canvas.MoveTo(PaintWidth-RightX,TopY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight);
//下邊水平線
Canvas.MoveTo(0,PaintHeight-BottomY);
Canvas.LineTo(PaintWidth-RightX,PaintHeight-BottomY);
//畫1/6線
PageTopY:=Height-BottomY-topy ;
Canvas.Pen.Style:=psDot;
Canvas.Pen.Color:=clMaroon;// CLGRAY;//;
Canvas.MoveTo(LeftX ,topy + Round(PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(2*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(2*PageTopY/6));
Canvas.Pen.style:=psSolid;
Canvas.MoveTo(LeftX ,topy + Round(3*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(3*PageTopY/6));
Canvas.Pen.style:=psDot;
Canvas.MoveTo(LeftX ,topy + Round(4*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(4*PageTopY/6));
Canvas.MoveTo(LeftX ,topy + Round(5*PageTopY/6));
Canvas.LineTo(PaintWidth-RightX,topy + Round(5*PageTopY/6));
Canvas.FONT.COLOR:=CLRED;
Canvas.FONT.SIZE:=9;
KWIDTH := PAINTWIDTH - LEFTX - RIGHTX;
KTMP := LineData[RIGHTDATE].iFlag-LineData[LEFTDATE].iFlag;
KXISHU := KTMP / ((RIGHTDATE-LEFTDATE)*(DEFAULTWIDTH ));
TMPT := LineData[LEFTDATE].iFlag + ROUND(0*KXISHU);
TempStr:=IntToStr(TMPT);
Canvas.TextOut(LEFTX +1,PaintHeight-BottomY+1,TempStr);
TMPT := LineData[LEFTDATE].iFlag + ROUND(KWIDTH/6*KXISHU);
TempStr:=IntToStr(TMPT);
Canvas.TextOut(LEFTX+ ROUND(KWIDTH/6)+1,PaintHeight-BottomY+1,TempStr);
Canvas.MoveTo(LeftX + ROUND(KWIDTH/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH/6),PaintHeight-BottomY);
TMPT := LineData[LEFTDATE].iFlag + ROUND(KWIDTH*2/6*KXISHU);
TempStr:=IntToStr(TMPT);
Canvas.TextOut(LEFTX+ ROUND(KWIDTH*2/6)+1,PaintHeight-BottomY+1,TempStr);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*2/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*2/6),PaintHeight-BottomY);
TMPT := LineData[LEFTDATE].iFlag + ROUND(KWIDTH*3/6*KXISHU);
TempStr:=IntToStr(TMPT);
Canvas.TextOut(LEFTX+ ROUND(KWIDTH*3/6)+1,PaintHeight-BottomY+1,TempStr);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*3/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*3/6),PaintHeight-BottomY);
TMPT := LineData[LEFTDATE].iFlag + ROUND(KWIDTH*4/6*KXISHU);
TempStr:=IntToStr(TMPT);
Canvas.TextOut(LEFTX+ ROUND(KWIDTH*4/6)+1,PaintHeight-BottomY+1,TempStr);
Canvas.MoveTo(LeftX + ROUND(KWIDTH*4/6),topy);
Canvas.LineTo(LeftX + ROUND(KWIDTH*4/6),PaintHeight-BottomY);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -