⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iledarrow.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//****************************************************************************************************************************************************
procedure TiLedArrow.iPaintTo(Canvas: TCanvas);
var
  DrawRect        : TRect;
  PointArray      : Array [1..10] of TiPointRecord;
  PointCount      : Integer;
  HighLightColor  : TColor;
  ShawdowColor    : TColor;
begin
  with Canvas, DrawRect do
    begin
      DrawBackGround(Canvas, BackGroundColor);
      DrawRect    := Rect(0, 0 ,Width, Height);

      if Active then
        begin
          Brush.Color := ActiveColor;
          Pen.Color   := ActiveColor;
        end
      else
        begin
          if AutoInactiveColor then
            begin
              Brush.Color := DimColor(ActiveColor, 3);
              Pen.Color   := Brush.Color;
            end
          else
            begin
              Brush.Color := InactiveColor;
              Pen.Color   := Brush.Color;
            end
        end;

      if BevelStyle = ibsRaised then
        begin
          HighLightColor := clBtnHighlight;
          ShawdowColor   := clBtnShadow;
        end
      else
        begin
          HighLightColor := clBtnShadow;
          ShawdowColor   := clBtnHighlight;
        end;
      PointCount := 7;

      case FStyle of
        ilasRight     : begin
                          PointArray[1].Point := Point(Right,                                     Top + FArrowHeadSize div 2                 ); PointArray[1].Shadow := False;
                          PointArray[2].Point := Point(Right - FArrowHeadSize,                    Top + FArrowHeadSize                       ); PointArray[2].Shadow := True;
                          PointArray[3].Point := Point(Right - FArrowHeadSize,                    Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[3].Shadow := False;
                          PointArray[4].Point := Point(Right - FArrowHeadSize - FArrowBodyLength, Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[4].Shadow := True;
                          PointArray[5].Point := Point(Right - FArrowHeadSize - FArrowBodyLength, Top + FArrowHeadSize div 4                 ); PointArray[5].Shadow := True;
                          PointArray[6].Point := Point(Right - FArrowHeadSize,                    Top + FArrowHeadSize div 4                 ); PointArray[6].Shadow := True;
                          PointArray[7].Point := Point(Right - FArrowHeadSize,                    Top                                        ); PointArray[7].Shadow := True;

                          PointCount := 7;
                        end;
        ilasLeft      : begin
                          PointArray[1].Point := Point(Left,                                     Top + FArrowHeadSize div 2                 ); PointArray[1].Shadow := False;
                          PointArray[2].Point := Point(Left + FArrowHeadSize,                    Top + FArrowHeadSize                       ); PointArray[2].Shadow := False;
                          PointArray[3].Point := Point(Left + FArrowHeadSize,                    Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[3].Shadow := False;
                          PointArray[4].Point := Point(Left + FArrowHeadSize + FArrowBodyLength, Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[4].Shadow := False;
                          PointArray[5].Point := Point(Left + FArrowHeadSize + FArrowBodyLength, Top + FArrowHeadSize div 4                 ); PointArray[5].Shadow := True;
                          PointArray[6].Point := Point(Left + FArrowHeadSize,                    Top + FArrowHeadSize div 4                 ); PointArray[6].Shadow := False;
                          PointArray[7].Point := Point(Left + FArrowHeadSize,                    Top                                        ); PointArray[7].Shadow := True;

                          PointCount := 7;
                        end;
        ilasLeftRight : begin
                          PointArray[ 1].Point := Point(Right,                                         Top + FArrowHeadSize div 2                 ); PointArray[ 1].Shadow := False;
                          PointArray[ 2].Point := Point(Right - FArrowHeadSize,                        Top + FArrowHeadSize                       ); PointArray[ 2].Shadow := True;
                          PointArray[ 3].Point := Point(Right - FArrowHeadSize,                        Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[ 3].Shadow := False;
                          PointArray[ 4].Point := Point(Right - FArrowHeadSize   - 2*FArrowBodyLength, Top + FArrowHeadSize - FArrowHeadSize div 4); PointArray[ 4].Shadow := False;
                          PointArray[ 5].Point := Point(Right - FArrowHeadSize   - 2*FArrowBodyLength, Top + FArrowHeadSize                       ); PointArray[ 5].Shadow := False;
                          PointArray[ 6].Point := Point(Right - 2*FArrowHeadSize - 2*FArrowBodyLength, Top + FArrowHeadSize div 2                 ); PointArray[ 6].Shadow := True;
                          PointArray[ 7].Point := Point(Right - FArrowHeadSize   - 2*FArrowBodyLength, Top                                        ); PointArray[ 7].Shadow := False;
                          PointArray[ 8].Point := Point(Right - FArrowHeadSize   - 2*FArrowBodyLength, Top + FArrowHeadSize div 4                 ); PointArray[ 8].Shadow := True;
                          PointArray[ 9].Point := Point(Right - FArrowHeadSize,                        Top + FArrowHeadSize div 4                 ); PointArray[ 9].Shadow := True;
                          PointArray[10].Point := Point(Right - FArrowHeadSize,                        Top                                        ); PointArray[10].Shadow := True;

                          PointCount := 10;
                        end;
        ilasUp        : begin
                          PointArray[1].Point := Point(Left + FArrowHeadSize div 2,                  Top                                    ); PointArray[1].Shadow := True;
                          PointArray[2].Point := Point(Left + FArrowHeadSize,                        Top + FArrowHeadSize                   ); PointArray[2].Shadow := False;
                          PointArray[3].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Top + FArrowHeadSize                   ); PointArray[3].Shadow := False;
                          PointArray[4].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Top + FArrowHeadSize + FArrowBodyLength); PointArray[4].Shadow := False;
                          PointArray[5].Point := Point(Left + FArrowHeadSize div 4,                  Top + FArrowHeadSize + FArrowBodyLength); PointArray[5].Shadow := True;
                          PointArray[6].Point := Point(Left + FArrowHeadSize div 4,                  Top + FArrowHeadSize                   ); PointArray[6].Shadow := False;
                          PointArray[7].Point := Point(Left,                                         Top + FArrowHeadSize                   ); PointArray[7].Shadow := True;

                          PointCount := 7;
                        end;
        ilasDown      : begin
                          PointArray[1].Point := Point(Left + FArrowHeadSize div 2,                  Bottom                                    ); PointArray[1].Shadow := False;
                          PointArray[2].Point := Point(Left + FArrowHeadSize,                        Bottom - FArrowHeadSize                   ); PointArray[2].Shadow := True;
                          PointArray[3].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Bottom - FArrowHeadSize                   ); PointArray[3].Shadow := False;
                          PointArray[4].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Bottom - FArrowHeadSize - FArrowBodyLength); PointArray[4].Shadow := True;
                          PointArray[5].Point := Point(Left + FArrowHeadSize div 4,                  Bottom - FArrowHeadSize - FArrowBodyLength); PointArray[5].Shadow := True;
                          PointArray[6].Point := Point(Left + FArrowHeadSize div 4,                  Bottom - FArrowHeadSize                   ); PointArray[6].Shadow := True;
                          PointArray[7].Point := Point(Left,                                         Bottom - FArrowHeadSize                   ); PointArray[7].Shadow := True;

                          PointCount := 7;
                        end;
        ilasUpDown    : begin
                          PointArray[ 1].Point := Point(Left + FArrowHeadSize div 2,                  Top                                        ); PointArray[ 1].Shadow := True;
                          PointArray[ 2].Point := Point(Left + FArrowHeadSize,                        Top + FArrowHeadSize                       ); PointArray[ 2].Shadow := False;
                          PointArray[ 3].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Top + FArrowHeadSize                       ); PointArray[ 3].Shadow := False;
                          PointArray[ 4].Point := Point(Left + FArrowHeadSize - FArrowHeadSize div 4, Top + FArrowHeadSize   + 2*FArrowBodyLength); PointArray[ 4].Shadow := True;
                          PointArray[ 5].Point := Point(Left + FArrowHeadSize,                        Top + FArrowHeadSize   + 2*FArrowBodyLength); PointArray[ 5].Shadow := False;
                          PointArray[ 6].Point := Point(Left + FArrowHeadSize div 2,                  Top + 2*FArrowHeadSize + 2*FArrowBodyLength); PointArray[ 6].Shadow := True;
                          PointArray[ 7].Point := Point(Left,                                         Top + FArrowHeadSize   + 2*FArrowBodyLength); PointArray[ 7].Shadow := True;
                          PointArray[ 8].Point := Point(Left + FArrowHeadSize div 4,                  Top + FArrowHeadSize   + 2*FArrowBodyLength); PointArray[ 8].Shadow := True;
                          PointArray[ 9].Point := Point(Left + FArrowHeadSize div 4,                  Top + FArrowHeadSize                       ); PointArray[ 9].Shadow := False;
                          PointArray[10].Point := Point(Left,                                         Top + FArrowHeadSize                       ); PointArray[10].Shadow := True;

                          PointCount := 10;
                       end;
      end;

      if PointCount = 7 then
        begin
          Polygon([PointArray[1].Point,
                   PointArray[2].Point,
                   PointArray[3].Point,
                   PointArray[4].Point,
                   PointArray[5].Point,
                   PointArray[6].Point,
                   PointArray[7].Point]);

          if (BevelStyle <> ibsnone) then
            begin
              if PointArray[1].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[1].Point, PointArray[2].Point]);
              if PointArray[2].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[2].Point, PointArray[3].Point]);
              if PointArray[3].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[3].Point, PointArray[4].Point]);
              if PointArray[4].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[4].Point, PointArray[5].Point]);
              if PointArray[5].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[5].Point, PointArray[6].Point]);
              if PointArray[6].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[6].Point, PointArray[7].Point]);
              if PointArray[7].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[7].Point, PointArray[1].Point]);
            end;
        end
      else
        begin
          Polygon([PointArray[1].Point,
                   PointArray[2].Point,
                   PointArray[3].Point,
                   PointArray[4].Point,
                   PointArray[5].Point,
                   PointArray[6].Point,
                   PointArray[7].Point,
                   PointArray[8].Point,
                   PointArray[9].Point,
                   PointArray[10].Point]);

          if (BevelStyle <> ibsnone) then
            begin
              if PointArray[ 1].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 1].Point, PointArray[ 2].Point]);
              if PointArray[ 2].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 2].Point, PointArray[ 3].Point]);
              if PointArray[ 3].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 3].Point, PointArray[ 4].Point]);
              if PointArray[ 4].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 4].Point, PointArray[ 5].Point]);
              if PointArray[ 5].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 5].Point, PointArray[ 6].Point]);
              if PointArray[ 6].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 6].Point, PointArray[ 7].Point]);
              if PointArray[ 7].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 7].Point, PointArray[ 8].Point]);
              if PointArray[ 8].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 8].Point, PointArray[ 9].Point]);
              if PointArray[ 9].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[ 9].Point, PointArray[10].Point]);
              if PointArray[10].Shadow then Pen.Color := HighLightColor else Pen.Color := ShawdowColor; PolyLine([PointArray[10].Point, PointArray[ 1].Point]);
            end;
        end;

    end;
end;
//****************************************************************************************************************************************************
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -