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

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

?? qigpfunctions.pas

?? Iocomp Ultra Pack v3.0.2 Sources.For.Delphi 數據顯示編程插件,可用于工業控制
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************}
{                                                       }
{       iGPFunctions (General Purpose)                  }
{                                                       }
{       Copyright (c) 1997,2003 Iocomp Software         }
{                                                       }
{*******************************************************}
{$I iInclude.inc}

{$ifdef iVCL}unit  iGPFunctions;{$endif}
{$ifdef iCLX}unit QiGPFunctions;{$endif}

interface

uses
  {$I iIncludeUses.inc}
  {$IFDEF iVCL} iTypes,  iMath,  Printers;{$ENDIF}
  {$IFDEF iCLX}QiTypes, QiMath, QPrinters;{$ENDIF}

procedure GetAutoScaleValuesAdjustable(DesiredMin, DesiredMax: Double; DesiredTicks, MaxTicks: Integer;
                                       var NewMin: Double; var NewMax: Double; var NewTicks: Integer);

procedure GetAutoScaleValuesFixed     (DesiredMin, DesiredMax: Double; DesiredTicks, MaxTicks: Integer;
                                       var NewMin: Double; var NewMax: Double; var NewTicks: Integer);

function DimColor(Value: TColor; Divisor: Integer): TColor;

procedure LineBevel       (Canvas: TCanvas; X1, Y1, X2, Y2: Integer; Style: TiBevelStyle);
procedure Line            (Canvas: TCanvas; Left, Top, Right, Bottom: Integer);
procedure DrawRaisedBorder(Canvas: TCanvas; ARect : TRect);
procedure DrawSunkenBorder(Canvas: TCanvas; ARect : TRect);

procedure DrawGradient(ACanvas: TCanvas; BackColor, ShawdowColor: TColor; ARect: TRect; ReverseColors: Boolean);
procedure DrawGradientCircle(Canvas: TCanvas; const CenterPoint: TPoint; Radius: Integer; ReverseColors: Boolean);
procedure DrawGradientDirection(Canvas: TCanvas; ARect: TRect; Direction: TiFillDirection; ColorStart, ColorStop: TColor);

//Kylix TODO
{$ifndef iCLX}
function FillFontInfo(Font : TFont; Rotation : Integer) : TLogFont;
{$endif}
function GetDecimalPoints(Max, Min : Double; Precision: Integer; PrecisionStyle : TiPrecisionStyle): Integer;

function GetXYRadPoint(AngleDegrees : Double; Radius : Double; Offset : TPoint) : TPoint;
function GetXYRadPointDouble(AngleDegrees : Double; Radius : Double; Offset : TPointDouble) : TPointDouble;

function iFormatPrecisionStyle(Value, Span : Double; Precision : Integer; PrecisionStyle : TiPrecisionStyle) : String;

function PointOrientation(X, Y : Integer; Orientation : TiOrientation) : TPoint;
function RectOrientation(Left, Top, Right, Bottom : Integer; Orientation : TiOrientation) : TRect;

function iPointReverse(Reverse : Boolean; X, Y: Integer) : TPoint;

function TruncHalf(Value : Double) : Integer;
function PointDoubleToPoint(PointDouble : TPointDouble) : TPoint;

procedure ArcSegment(Canvas:TCanvas; StartDegrees, EndDegress : Double; Radius1, Radius2 : Integer; Offset : TPoint; AColor : TColor);

function  GetPropertyValueString(PropName : String; var PropString : String; AList: TStringList): Boolean;
procedure SeparateStrings(AText: String; Seperator : String; var LeftString: String; var RightString: String);
procedure SaveObjectToStringList  (Instance: TPersistent; Path: String; DataList: TStringList; IgnoreList: TStringList);
procedure LoadObjectFromStringList(Instance: TPersistent; Path: String; DataList: TStringList);
function GetObjectProperty(Instance: TPersistent; const PropName: string): TObject;
procedure AssignObject(Source, Destination: TPersistent);

procedure SetParentsToTopMost(AWinControl : TWinControl);
{$ifdef iVCL}procedure SetWindowToControlParent(Handle : THandle; Value : Boolean); {$endif}

function GetCustomFormOwner(AComponent: TComponent): TWinControl;

function  iDrawText       (Canvas: TCanvas; AText : String; var ARect : TRect; AFlags: TiTextFlags): Integer;
function  iDrawRotatedText(Canvas: TCanvas; AText : String; ARect : TRect; Angle: TiRotationAngle): TRect;
procedure iDrawFocusRect  (Canvas: TCanvas; ARect: TRect; BackgroundColor: TColor);
procedure iDrawFocusRect2 (Canvas: TCanvas; ARect: TRect);
procedure iDrawEdge       (Canvas: TCanvas; ARect: TRect; Style: TiDrawEdgeStyle);

procedure iDrawTriangle   (Canvas: TCanvas; ARect: TRect; Direction: TiDirection);

procedure iDrawButtonArrowUp  (Canvas: TCanvas; ARect: TRect; Down: Boolean);
procedure iDrawButtonArrowDown(Canvas: TCanvas; ARect: TRect; Down: Boolean);

function  iTextWidth           (Canvas: TCanvas; AText: String): Integer;
function  iTextHeight          (Canvas: TCanvas; AText: String): Integer;
function  iTextHeightFixedWidth(Canvas: TCanvas; AText: String; FixedWidth: Integer): Integer;

function  iRect(Left, Top, Right, Bottom: Integer): TRect;
function  iXYReverseRect (XYReverse: Boolean; XAxis1, YAxis1, XAxis2, YAxis2: Integer): TRect;
function  iXYReversePoint(XYReverse: Boolean; XAxisValue, YAxisValue: Integer): TPoint;

procedure iRectangle(Canvas: TCanvas; ARect: TRect);

procedure iDecodeDate(const DateTime: TDateTime; var Year, Month, Day: Integer);

function GetShiftDown: Boolean;
function GetCtrlDown : Boolean;
function GetAltDown  : Boolean;

procedure iSetDesigning(AComponent: TComponent);

procedure iAlignVCenterControl(RefControl, AlignControl : TControl);

function DateToMilliSeconds(Value: TDateTime) : Integer;
function DateToSeconds     (Value: TDateTime) : Integer;
function DateToMinutes     (Value: TDateTime) : Integer;
function DateToHours       (Value: TDateTime) : Integer;

procedure WriterWriteProperties(Writer: TWriter; Instance: TPersistent);

function iGetRValue(rgb: DWORD): Byte;
function iGetGValue(rgb: DWORD): Byte;
function iGetBValue(rgb: DWORD): Byte;

procedure SwapIntegers(var Integer1, Integer2 : Integer);

function GetClickRect(const Data: array of TPoint; MinSizePixels: Integer): TRect;

function PointDouble(X, Y: Double): TPointDouble;

function iStrToInt(Value: String): LongWord;
function iIntToStr(Value: LongWord; Format: TiIntegerFormatStyle; MaxLength: Integer; LeadingZeros: Boolean): String;

procedure iSetFocus(WinControl: TWinControl);

procedure SetActivePageIndex(PageControl: TPageControl; Index: Integer);
function GetActivePageIndex (PageControl: TPageControl): Integer;

function GetRectCenterPoint(ARect: TRect): TPoint;
function GetSign(Value: Double): Double;

function ChangeColorIntensity(Value: TColor; RGBOffset: Integer): TColor;

function MMToInches(MMValue: Double):Double;

procedure GetPaperTypePaperSize(PaperType: Smallint; var PaperWidthInches, PaperHeightInches: Double);
procedure GetPrinterPaperSize(var PaperWidthInches, PaperHeightInches: Double);

implementation

type
  TWriterAccess          = class(TWriter    )end;
  TReaderAccess          = class(TReader    )end;
  TPersistentAccess      = class(TPersistent)end;
  TComponentAccess       = class(TComponent )end;
  TCanvasAccess          = class(TCanvas    )end;
//****************************************************************************************************************************************************
function DimColor(Value: TColor; Divisor: Integer): TColor;
var
  Red,Green,Blue : Integer;
begin
  if Divisor > 0 then
    begin
      Red      := (Value  and     $FF)         div Divisor;
      Green    := ((Value and   $FF00) shr 8 ) div Divisor;
      Blue     := ((Value and $FF0000) shr 16) div Divisor;
    end
  else
    begin
      Red      :=  (Value and     $FF)         * -Divisor;
      Green    := ((Value and   $FF00) shr 8 ) * -Divisor;
      Blue     := ((Value and $FF0000) shr 16) * -Divisor;
    end;

  if Red   > 255 then Red   := 255;
  if Green > 255 then Green := 255;
  if Blue  > 255 then Blue  := 255;

  if Red   <   0 then Red   := 0;
  if Green <   0 then Green := 0;
  if Blue  <   0 then Blue  := 0;

  Result := Red + (Green shl 8) + (Blue shl 16);
end;
//*************************************************************************************************************************************
function GetTickCount(DesiredTicks, MaxTicks: Integer; Span: Double): Integer;
var
  x                 : Integer;
  MatchFound        : Boolean;
  NewTickMajorCount : Integer;
  ClosestCount      : Integer;
  Step              : Double;
  StepDivisor       : Double;
begin
  ClosestCount      := 99999;
  NewTickMajorCount := 0;

  for x := 2 to MaxTicks do
    begin
      MatchFound := False;

      Step        := Span/(x-1);
      StepDivisor := (Power(10, Trunc(Log10(Step))));

      if Round(Step/StepDivisor*1000) =  100 then MatchFound := True;
      if Round(Step/StepDivisor*1000) =  200 then MatchFound := True;
      if Round(Step/StepDivisor*1000) =  250 then MatchFound := True;
      if Round(Step/StepDivisor*1000) =  500 then MatchFound := True;
      if Round(Step/StepDivisor*1000) =  750 then MatchFound := True;
      if Round(Step/StepDivisor*1000) = 1000 then MatchFound := True;
      if Round(Step/StepDivisor*1000) = 2000 then MatchFound := True;
      if Round(Step/StepDivisor*1000) = 2500 then MatchFound := True;
      if Round(Step/StepDivisor*1000) = 5000 then MatchFound := True;
      if Round(Step/StepDivisor*1000) = 7500 then MatchFound := True;

      if MatchFound then
        if ABS(DesiredTicks - x) <= ClosestCount then
          begin
            ClosestCount      := ABS(DesiredTicks - x);
            NewTickMajorCount := x;
          end;

    end;

  if ClosestCount < 99999 then Result := NewTickMajorCount else Result := MaxTicks + 1;
end;
//*************************************************************************************************************************************
function GetNewMinMax(ActualTicks: Integer; DesiredMin, DesiredMax: Double; NewRange : Double; var NewMax, NewMin: Double): Boolean;
var
  StepValue  : Double;
  CenterZero : Boolean;
begin
  StepValue  := NewRange /(ActualTicks - 1);
  CenterZero := (DesiredMax > 0) and (DesiredMin < 0);

  if CenterZero then
    begin
      NewMin := NewRange;
      while NewMin > DesiredMin do
        NewMin := NewMin - StepValue;
      NewMax := NewMin + NewRange;
    end
  else
    begin
      if DesiredMax > 0 then
        begin
          NewMax := 0;

          while NewMax < DesiredMax do
            NewMax := NewMax + StepValue;

          NewMin := NewMax - NewRange;
          while (DesiredMin >= 0) and (NewMin < 0) do
            begin
              NewMax := NewMax + StepValue;
              NewMin := NewMin + StepValue;
            end;
        end
      else
        begin
          NewMin := 0;

          while NewMin > DesiredMin do
            NewMin := NewMin - StepValue;

          NewMax := NewMin + NewRange;

          if (DesiredMax <= 0) and (NewMax > 0) then
            begin
              NewMax := NewMax - StepValue;
              NewMin := NewMin - StepValue;
            end;
        end
    end;

  Result := (NewMax >= DesiredMax) and (NewMin <= DesiredMin);
end;
//*************************************************************************************************************************************
function GetNewMinMaxFixed(ActualTicks: Integer; DesiredMin, DesiredMax: Double; NewRange : Double; var NewMax, NewMin: Double): Boolean;
var
  StepValue  : Double;
  CenterZero : Boolean;
  Fail       : Boolean;
begin
  StepValue  := NewRange /(ActualTicks - 1);
  CenterZero := (DesiredMax > 0) and (DesiredMin < 0);

  if CenterZero then
    begin
      NewMin := NewRange;
      while (NewMin >= DesiredMin) do
        NewMin := NewMin - StepValue;
      NewMin := NewMin + StepValue;
      NewMax := NewMin + NewRange;
    end
  else
    begin
      if DesiredMin >= 0 then
        begin
          NewMin := 0;

          while NewMin < DesiredMin do
            NewMin := NewMin + StepValue;

          NewMax := NewMin + NewRange;
        end
      else
        begin
          NewMax := 0;

          while NewMax > DesiredMax do
            NewMax := NewMax - StepValue;

          NewMin := NewMax - NewRange;
        end
    end;

  Fail := False;
  if NewMax > DesiredMax then Fail := True;
  if NewMin < DesiredMin then Fail := True;
  if (NewMax + StepValue) <= DesiredMax then Fail := True;

  Result := not Fail;

  //Result := not((NewMax > DesiredMax) or (NewMin < DesiredMin));
end;
//****************************************************************************************************************************************************
procedure GetAutoScaleValuesAdjustable(DesiredMin, DesiredMax: Double; DesiredTicks, MaxTicks: Integer;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片在www色猫咪| 亚洲线精品一区二区三区| 免费观看成人av| 精品理论电影在线观看| 国产成人av一区二区三区在线观看| 日韩一区二区三区视频在线| 国产美女一区二区| 一区二区三区在线视频观看| 欧洲av在线精品| 麻豆精品精品国产自在97香蕉| 精品免费日韩av| 在线观看不卡一区| 久久97超碰国产精品超碰| 欧美激情综合网| 欧美一卡二卡在线| 91精品福利视频| 国产精品77777竹菊影视小说| 一区二区三区四区精品在线视频| 欧美日韩国产精品自在自线| 日本成人在线不卡视频| 国产精品久久久久久久久免费樱桃| 欧美性大战久久久| 欧美中文字幕一二三区视频| 国产精品 欧美精品| 秋霞电影网一区二区| 亚洲美女淫视频| 亚洲伦理在线精品| 中文字幕一区二区三中文字幕| 精品久久久久久久久久久久包黑料| 99久久伊人久久99| 91在线视频播放地址| 高清成人在线观看| 成人午夜免费av| 国产91精品在线观看| 国产乱码精品一区二区三区av| 午夜精品视频一区| 麻豆91在线看| 国产一区日韩二区欧美三区| 国产真实乱偷精品视频免| 久久99日本精品| 国产精品一区二区视频| 成人av第一页| 97超碰欧美中文字幕| 欧美亚洲国产一区二区三区va| 欧洲一区在线电影| 欧美一区二区三区在线视频| 欧美一区二区三级| 国产精品久久看| 欧美在线小视频| 26uuu亚洲| 日韩制服丝袜av| |精品福利一区二区三区| 欧美人与禽zozo性伦| 欧美三级中文字幕在线观看| 91视频com| 成人免费视频免费观看| 国产亚洲制服色| 精品国产自在久精品国产| 久久嫩草精品久久久精品一| 国产精品美女久久久久久久 | 午夜av区久久| 成人精品在线视频观看| 色老汉一区二区三区| 欧美老肥妇做.爰bbww视频| 久久精品一区二区三区不卡牛牛| 亚洲精品视频免费看| 国产精品人妖ts系列视频| 日韩天堂在线观看| 一区二区三区精品| 97久久人人超碰| 国产精品你懂的在线欣赏| 国产精品一区二区三区网站| 666欧美在线视频| 无吗不卡中文字幕| 91麻豆精品国产自产在线观看一区| 亚洲天堂成人网| 91社区在线播放| 亚洲国产欧美一区二区三区丁香婷| 成人黄色av电影| 亚洲蜜桃精久久久久久久| 91在线码无精品| 亚洲成人自拍一区| 精品黑人一区二区三区久久| 麻豆精品一区二区| 久久精品视频免费观看| 国产v综合v亚洲欧| 中文字幕永久在线不卡| 色综合一区二区三区| 亚洲一二三区在线观看| 精品国产一区久久| bt欧美亚洲午夜电影天堂| 中文字幕亚洲电影| 欧美图片一区二区三区| 紧缚捆绑精品一区二区| 国产农村妇女毛片精品久久麻豆 | 国产精品免费av| 欧美肥妇free| av在线播放一区二区三区| 日韩电影在线一区二区三区| 久久免费看少妇高潮| 在线观看av不卡| 成人午夜视频福利| 国产一区二区在线视频| 亚洲成人自拍一区| 亚洲男人天堂av| 亚洲国产精华液网站w| 精品99久久久久久| 日韩女优av电影| 欧美视频一区二区三区在线观看| 国产一区欧美二区| 国产一区二三区| 国产精品99久久久久久久女警| 亚洲成a人片在线观看中文| 中文字幕永久在线不卡| 欧美激情艳妇裸体舞| 中文欧美字幕免费| 国产精品久久久久一区二区三区| 精品奇米国产一区二区三区| 日韩精品在线一区| 日韩精品一区二| 国产亚洲精品aa午夜观看| 国产色产综合产在线视频| 欧美成人性福生活免费看| 久久综合五月天婷婷伊人| 久久精品欧美日韩精品 | 国产精品伦理一区二区| 国产精品三级视频| 亚洲另类春色校园小说| 亚洲女人的天堂| 日本欧美一区二区三区乱码| 久久精品72免费观看| 欧美日韩和欧美的一区二区| 欧美老肥妇做.爰bbww视频| 精品999在线播放| 亚洲精品写真福利| 日本大胆欧美人术艺术动态| 国产精品正在播放| 在线电影国产精品| 中文字幕欧美日韩一区| 日韩国产成人精品| 一本色道久久综合精品竹菊| 精品少妇一区二区三区在线视频 | 中文字幕在线一区二区三区| 亚洲18影院在线观看| 成人av免费在线| 91精品在线一区二区| 亚洲欧美激情小说另类| 久久国产欧美日韩精品| 欧美精品久久99久久在免费线| 欧美国产精品专区| 国模少妇一区二区三区| 日韩一区二区三区av| 天天综合天天综合色| 91麻豆国产福利精品| 国产精品久久久久久久蜜臀 | 福利电影一区二区三区| 日韩亚洲欧美在线| 精品一区二区三区香蕉蜜桃 | 91视频国产观看| 综合激情成人伊人| 色综合久久久久综合体| 国产精品护士白丝一区av| 成人精品一区二区三区四区 | 精品在线一区二区三区| 日韩一区二区电影| 国产凹凸在线观看一区二区 | 综合久久国产九一剧情麻豆| av不卡在线播放| 亚洲高清三级视频| 91精品欧美综合在线观看最新| 麻豆91免费观看| 国产欧美1区2区3区| 91视视频在线观看入口直接观看www | 91精品国产高清一区二区三区| 天涯成人国产亚洲精品一区av| 日韩视频一区二区在线观看| 激情另类小说区图片区视频区| 日韩精品一区二区三区中文不卡 | 一区二区三区四区不卡视频| 欧美精品成人一区二区三区四区| 午夜精品久久久久久久久久| 久久久欧美精品sm网站| 欧美自拍偷拍一区| 成人精品视频网站| 日韩精品成人一区二区三区| 国产精品久久久久久户外露出| 欧美日韩国产高清一区| 国产精品一色哟哟哟| 天堂va蜜桃一区二区三区漫画版| 欧美经典三级视频一区二区三区| 色欧美片视频在线观看| 成人福利电影精品一区二区在线观看 | 免费看日韩a级影片| 亚洲国产精品一区二区www在线 | 日本欧美一区二区| 亚洲va天堂va国产va久| 亚洲一级二级在线| 久久久精品蜜桃| 色婷婷国产精品| 国内久久精品视频|