亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mymeter.pas

?? 本范例采用TPaintBox控件派生出儀表控件。 文件說明:PaintGrid.pas 網格型儀表控件源文件 Mymeter.pas 圓型儀表控件源文件 Project1是這兩個控件的使用范
?? PAS
字號:
unit Mymeter;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,Forms,Graphics;

type
  TMymeter = class(TPaintBox)

    procedure Paint; override;
  private
    { Private declarations }
    CircleCPoint:TPoint;
    MyX,MyY,MyR,MyRw:integer;   //Myx,Myy圓心位置,MyR半徑,MyRw圓弧寬度
    MyA,MyAa,MyAN:integer;//最終指向角度  ,原來的指向 ,當前指向  從MyAa循環指到MyA


    procedure PaintCir();
    procedure Paintbigdial(A:integer;Value:double); //畫大刻度
    procedure Paintsmalldial(A:integer); //畫小刻度    Needle
    procedure PaintNeedle(A:integer); //畫指針
    procedure PanelGr(InitializeColor, TerminalColor: TColor;Pwidth,PHeight:integer; pCanvas:TCanvas);  //panel背景漸變

  protected
    { Protected declarations }

  public
    { Public declarations }
    A1,A2:integer;    //不同色彩
    ColorA1,ColorA2:integer;
    minvalue,maxvalue,Myvalue:double;
    strUint: String;
    IstemperatureMeter:Boolean;//是否溫度表

    XWidth,YHeight:integer;   //Myx,Myy圓心位置,MyR半徑,MyRw圓弧寬度


    constructor Create(AOwner: TComponent); override;
   // constructor Create(AOwner: String); override;
    destructor   Destroy;override;
    procedure MyPaint(MValue:double); //畫指針

  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TMymeter]);
end;

constructor  TMymeter.Create(AOwner: TComponent);
begin



  //Canvas.Pen.Style := bsclear;
  // A1:=60;
  // A2:=30;
  // ColorA1:=clLime;
  // ColorA2:= Clred;

  inherited;
end;

destructor   TMymeter.Destroy;
begin
  inherited   Destroy;   
end;


procedure TMymeter.PaintCir();  //畫圓弧    圓心(X,Y),R1,R2半徑
var
  radian: Double; {記錄弧度; Sin、Cos 函數需要弧度做參數; 弧度 = 角度 * Pi/180}
  i,a,b: Integer;
begin
  Canvas.Pen.Width:=MyRw;
  Canvas.Pen.Style := psSolid;
 //   Canvas.MoveTo(MyX-MyR, MyY);
 Canvas.Pen.Color := 255;
  for i := 0 to 90 do
  begin
    if i>A1 then
     Canvas.Pen.Color := ColorA2
    else
     Canvas.Pen.Color := ColorA1;
    radian := (i-45) * (Pi/180);          {獲取弧度}
    a := MyX + Round(Sin(radian) * MyR); {用 Sin 函數獲取橫坐標}
    b := MyY - Round(Cos(radian) * MyR); {用 Cos 函數獲取縱坐標}
    if i=0 then
     Canvas.MoveTo(a, b)  //起點
    else
    Canvas.LineTo(a, b);             {繪制}
   // Application.ProcessMessages;     {不要影響其他操作}
   // Sleep(3);                        {等 3 毫秒}
  end;
 //
end;
procedure TMymeter.Paintbigdial(A:integer;Value:double); //畫大刻度
var
  i,x,y,x1,y1,x2,y2,x3,y3,Len:integer;
  radian: Double;
  strtemp:string;
  IsTValue:double;
begin
  Canvas.Pen.Width:=1;
  Canvas.Pen.Color := clHighlight;
  Len:=MyR+(MyRw div 2);
  radian:= (A-45)*PI/180;
  x:=Round(Len*sin(radian));
  y:=Round(Len*cos(radian));
  x1:=Round((Len-MyRw-4)*sin(radian));
  y1:=Round((Len-MyRw-4)*cos(radian));
  if A<45 then
  begin
  x2:=Round((Len-MyRw+20)*sin(radian));
  y2:=Round((Len-MyRw+20)*cos(radian));
  x3:=Round((Len-MyRw-5)*sin(radian));
  y3:=Round((Len-MyRw-5)*cos(radian));
  end
  else
  begin
  x2:=Round((Len-MyRw)*sin(radian));
  y2:=Round((Len-MyRw+20)*cos(radian));
  x3:=Round((Len-MyRw-20)*sin(radian));
  y3:=Round((Len-MyRw-5)*cos(radian));
  end;
  Canvas.MoveTo(MyX+X1,MyY-Y1);
  Canvas.LineTo(MyX+x,MyY-y);
  Canvas.Brush.Style:=bsclear;//不覆蓋背景色
  Canvas.Font.Color := clBackground;
  strtemp := format('%0.0f',[value]);
  Canvas.TextOut(MyX+X2,MyY-Y2,strtemp);
  if IstemperatureMeter then
  begin
    IsTValue := value*9 /5 +32;
    strtemp := format('%0.0f',[IsTvalue]);
    Canvas.TextOut(MyX+X3,MyY-Y3,strtemp);
  end;
end;

procedure TMymeter.Paintsmalldial(A:integer); //畫小刻度
var
  i,x,y,x1,y1,Len:integer;
  radian: Double;
begin
  Canvas.Pen.Width:=1;
  Canvas.Pen.Color := clHighlight;
 // Canvas.MoveTo(MyX,MyY);
//  Len:=MyR-(MyRw div 2)-1;
  Len:=MyR+(MyRw div 2);
  radian:= (A-45)*PI/180;
  x:=Round((Len-MyRw+2)*sin(radian));
  y:=Round((Len-MyRw+2)*cos(radian));
  x1:=Round((Len-MyRw-4)*sin(radian));
  y1:=Round((Len-MyRw-4)*cos(radian));
  Canvas.MoveTo(MyX+X1,MyY-Y1);
  Canvas.LineTo(MyX+x,MyY-y);

end;

procedure TMymeter.PaintNeedle(A:integer); //畫指針
var
  i,x,y,x1,y1,Len:integer;
  radian: Double;
begin
  Canvas.Pen.Width:=2;
  Canvas.Pen.Color := clBlue;
  Canvas.MoveTo(MyX,MyY);
  Len:=MyR+(MyRw div 2);
  radian:= (A-45)*PI/180;
  x:=Round((Len-MyRw-5)*sin(radian));
  y:=Round((Len-MyRw-5)*cos(radian));
  Canvas.LineTo(MyX+x,MyY-y);
end;

procedure TMymeter.Paint();  //重載Paint事件
var
  i:integer;
  strtemp:string;
  Tvalue:double;

begin
  inherited;
  // 計算儀表圓弧的圓心和半徑
  if Xwidth = 0 then Xwidth := 60;
  if YHeight = 0 then YHeight := 80;

  MyX :=  Xwidth div 2;
//  MyY :=  YHeight*4 div 3;
  if ((Xwidth div 2)<(Xwidth -60 )) then
  MyR:= (Xwidth div 2)
  else
   MyR := (Xwidth -60 );


  MyY := 30 + MyR;
 // CircleCPoint := Point(MyX,MyY);

 // MyY := inty; //Trunc(Height*2/3);
  //MyR := 50;// Trunc(width/3);
  MyRw := 6;
 // DoubleBuffered:=true;//防止閃爍
  //Myvalue:=56.988;
  if (A1<0) or (A1>90) then  //A1非法輸入時初始化
    A1:= 60;
  if (A2>(90-A1)) or (A2<0) then
    A2:= 30;
  Canvas.Brush.Style:=bsclear;//不覆蓋背景色


   PanelGr($0060FF,clYellow,Xwidth,YHeight,Canvas);//畫背景

  with Canvas do
  begin
    Font.Charset := GB2312_CHARSET ;
    Font.Size := 7;
    Font.Name := 'Tahoma';
    strtemp := format('%.1f '+strUint,[Myvalue]);
    Canvas.Brush.Style:=bsclear;//不覆蓋背景色
    if NOT IstemperatureMeter then
    begin
      TextOut(MyX-15,2,strtemp);
    end
    else
    begin
      strtemp := format('%.1f '+strUint+'  %.1f F',[Myvalue,Myvalue*9 /5 +32]);
      TextOut(MyX-30,2,strtemp);
    end;
  end;
PaintCir();
   i:=0;
  while i<=90 do
  begin
   Tvalue:= minvalue+(i*(maxvalue-minvalue))/90;
  // strtemp := format('%0.0f',[Tvalue]);
   Paintbigdial(i,Tvalue);       //畫大刻度
   if Not IstemperatureMeter then     //如果是溫度計
   begin
   if (i+7)<=90 then
   Paintsmalldial(i+7);        //畫小刻度
   end;
   i:= i+15;
  end;

    PaintNeedle(MyAN);//畫指針


end;
procedure TMymeter.MyPaint(MValue:double); //指針需要摸擬從原來的位置指向新的位置
begin
//  MyA := A; //記錄新位置
  MyValue := MValue;
  MyA := round((MValue-minvalue)*90/(maxvalue-minvalue));
  MyAa := MyAN;//記錄原位置
  if (MyA<0)or(MyA>90) then
  MyA:=0;
  while MyAN<(MyA+5) do
  begin
    PaintNeedle(MyAN);//畫指針
    inc(MyAN);
    Sleep(1);
    Refresh;
  end;
  while MyAN>(MyA) do
  begin
    PaintNeedle(MyAN);//畫指針
    dec(MyAN);
    Paint();
    Application.ProcessMessages;     {不要影響其他操作}
    Sleep(1);
    Refresh;
  end;
//  Paint();

  //PaintNeedle(MyA);//畫指針
end;

procedure TMymeter.PanelGr(InitializeColor, TerminalColor: TColor;Pwidth,PHeight:integer; pCanvas:TCanvas);  //panel背景漸變
var
  ARect : TRect;
  FillNumber,i:integer;
  RED,Green,Blue:integer;
begin
  for FillNumber := 0 to PHeight-1 do
    begin
      Red := GetRvalue(InitializeColor) + Trunc(FillNumber * (GetRvalue(TerminalColor) -  GetRvalue(InitializeColor)) / (PHeight - 1));
      Green := GetGvalue(InitializeColor) + Trunc(FillNumber * (GetGvalue(TerminalColor) - GetGvalue(InitializeColor)) /(PHeight - 1));
      Blue := GetBvalue(InitializeColor) + Trunc(FillNumber * (GetBvalue(TerminalColor) - GetBvalue(InitializeColor)) / (PHeight - 1));

      pCanvas.Pen.Color := RGB(Red, Green, Blue);

      pCanvas.MoveTo(0, FillNumber);
      pCanvas.LineTo(Pwidth, FillNumber);
    end;
end;



end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里只有精品视频网| 91麻豆精品国产91久久久久| 日本一道高清亚洲日美韩| 亚洲男人天堂av| 中文字幕在线观看一区| 中文字幕一区三区| 中文字幕在线一区免费| 国产精品美女久久久久aⅴ| 国产精品久久久久久户外露出 | 免费成人av在线| 香蕉久久一区二区不卡无毒影院 | 91精品国产综合久久久久久久久久| 91色在线porny| 在线观看欧美精品| 欧美久久一二区| 日韩丝袜情趣美女图片| 久久综合色播五月| 中文字幕乱码亚洲精品一区| 中文字幕一区av| 亚洲视频狠狠干| 亚洲电影一级黄| 国内精品第一页| 99精品视频一区| 色综合色综合色综合色综合色综合| 91麻豆高清视频| 欧美一区2区视频在线观看| 精品国产自在久精品国产| 国产欧美日本一区视频| 亚洲人成网站影音先锋播放| 天天做天天摸天天爽国产一区 | 久久色在线视频| 日本一区二区三级电影在线观看| 亚洲欧洲精品成人久久奇米网| 亚洲专区一二三| 激情综合亚洲精品| 91麻豆.com| 精品日韩成人av| 一区二区三区在线视频免费观看 | 久久99久久精品| 99久久99精品久久久久久| 欧美乱妇一区二区三区不卡视频| 日韩欧美在线影院| 亚洲男同性视频| 国产一区二区免费视频| 91免费视频网| 国产亚洲成aⅴ人片在线观看| 亚洲在线视频免费观看| 国产在线一区观看| 欧美精品日韩一区| 国产精品日日摸夜夜摸av| 青青青爽久久午夜综合久久午夜| www.欧美色图| 精品成人a区在线观看| 午夜电影网亚洲视频| 一本到不卡免费一区二区| 久久嫩草精品久久久精品| 日韩高清欧美激情| 日本道色综合久久| 国产精品久久久久久久久免费樱桃| 免费观看在线色综合| 欧美视频在线一区二区三区| 国产精品久久久久久久岛一牛影视| 激情欧美日韩一区二区| 91精品黄色片免费大全| 天涯成人国产亚洲精品一区av| 色域天天综合网| 亚洲欧美一区二区三区极速播放| 国产成人精品午夜视频免费| 日韩欧美国产电影| 日本午夜精品视频在线观看| 欧美日韩国产美| 亚洲va欧美va人人爽| 在线精品观看国产| 亚洲激情网站免费观看| 91成人免费在线视频| 亚洲免费观看在线视频| 96av麻豆蜜桃一区二区| 亚洲欧美色综合| 在线观看亚洲a| 亚洲一区视频在线观看视频| 欧美视频中文字幕| 日韩va亚洲va欧美va久久| 日韩色在线观看| 麻豆国产欧美日韩综合精品二区| 欧美一区二区女人| 韩国女主播成人在线| 久久九九久精品国产免费直播| 国产高清精品久久久久| 欧美韩国日本综合| 91丨九色porny丨蝌蚪| 一区二区在线看| 欧美精品精品一区| 国产一区免费电影| 日本一区二区三区电影| 在线视频你懂得一区二区三区| 亚洲成年人网站在线观看| 欧美一区二区三区成人| 国产一区二区影院| 国产精品伦一区二区三级视频| 日本韩国欧美在线| 免费人成在线不卡| 国产欧美中文在线| 色噜噜狠狠成人中文综合 | 久久国产欧美日韩精品| 男人的天堂久久精品| 欧美日韩中文字幕一区二区| 麻豆国产欧美一区二区三区| 国产精品视频麻豆| 欧美日韩一区视频| 国产自产视频一区二区三区| 国产精品福利av| 4438成人网| av电影天堂一区二区在线| 亚洲国产精品影院| 久久精品男人的天堂| 欧美制服丝袜第一页| 国产麻豆日韩欧美久久| 国产精品一二三四区| 亚洲欧洲中文日韩久久av乱码| 日韩欧美一级片| 91啪九色porn原创视频在线观看| 日本美女一区二区三区| 自拍偷拍亚洲欧美日韩| 精品国产乱码久久久久久久久 | 国产乱妇无码大片在线观看| 玉足女爽爽91| 久久嫩草精品久久久精品一| 欧美人牲a欧美精品| 成人福利在线看| 久久99精品国产.久久久久| 一区二区三区四区国产精品| 国产日韩综合av| 日韩久久久久久| 欧美日韩精品三区| 色综合久久久网| 国产成a人无v码亚洲福利| 美国毛片一区二区| 亚洲不卡av一区二区三区| 日韩美女精品在线| 国产日韩成人精品| 26uuuu精品一区二区| 欧美一区二区三区爱爱| 欧美精品视频www在线观看| 色哟哟亚洲精品| 99精品欧美一区| 成人污视频在线观看| 国产盗摄视频一区二区三区| 久久精品国产一区二区| 日韩va欧美va亚洲va久久| 亚洲国产一区二区三区| 亚洲精品videosex极品| 亚洲另类春色国产| 亚洲精品视频一区二区| 亚洲精品成人精品456| 亚洲综合一二区| 亚洲曰韩产成在线| 亚洲国产精品视频| 亚洲国产一区二区三区青草影视| 亚洲图片有声小说| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲一区二区三区激情| 免费人成网站在线观看欧美高清| 亚洲一区二区四区蜜桃| 欧美顶级少妇做爰| 亚洲小说欧美激情另类| 99亚偷拍自图区亚洲| 99久久国产免费看| 日韩视频免费直播| 悠悠色在线精品| 国产一区二区三区观看| 欧美日韩情趣电影| 欧美国产精品劲爆| 六月丁香综合在线视频| 色丁香久综合在线久综合在线观看| www激情久久| 日韩精品电影在线观看| 91香蕉视频mp4| 久久精品一区二区三区四区| 日日摸夜夜添夜夜添亚洲女人| 成人一区二区三区中文字幕| 精品欧美黑人一区二区三区| 一区二区三区自拍| 不卡一卡二卡三乱码免费网站| 日韩欧美的一区| 日韩精品亚洲专区| 欧美伊人久久久久久久久影院 | 欧美一区二区久久| 亚洲午夜在线视频| 91免费观看在线| 国产精品国产精品国产专区不蜜| 国产自产高清不卡| 精品乱码亚洲一区二区不卡| 五月天激情综合| 欧美三级蜜桃2在线观看| 亚洲柠檬福利资源导航| 色综合中文综合网| 亚洲欧美日韩国产另类专区 | 欧美日本韩国一区| 午夜久久久久久久久 | 成人91在线观看|