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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? qiledmatrix.pas

?? Iocomp Ultra Pack v3.0.2 Sources.For.Delphi 數(shù)據(jù)顯示編程插件,可用于工業(yè)控制
?? PAS
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
    end;

end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.iMouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  Index : Integer;
  Row   : Integer;
  Col   : Integer;
begin
  inherited;

  Index := GetLedAtXY(X, Y);

  if Index <> -1 then if FIndicatorList^[Index].MouseDown then
    begin
      Row := Index div ColCount;
      Col := Index mod ColCount;

      FClickRow := Row;
      FClickCol := Col;

      if Assigned(FOnMouseUpIndicator) then FOnMouseUpIndicator(Row, Col);
      if Assigned(FOnClickIndicator)   then FOnClickIndicator  (Row, Col);
      BackGroundChange;
    end
  else
    begin
      FClickRow := -1;
      FClickCol := -1
    end;

  ClearMouseDown;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.DblClick;
begin
  inherited;
  if (FClickRow <> - 1) and (FClickCol <> -1) then
    begin
      if Assigned(FOnDblClickIndicator) then FOnDblClickIndicator(FClickRow, FClickCol);
    end;
end;
//****************************************************************************************************************************************************
function TiLedMatrix.GetLedAtXY(X, Y: Integer): Integer;
var
  i : Integer;
begin
  Result := -1;
  for i := 0 to (ColCount*RowCount)-1 do
    begin
      if PtInRect(FIndicatorList^[i].ARect, Point(X, Y)) then
        begin
          Result := i;
          Exit;
        end;
    end;
end;
//****************************************************************************************************************************************************
function TiLedMatrix.GetIndicatorActive(Row, Col: Integer): Boolean;
begin
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  Result := FIndicatorList^[Col + Row*ColCount].Active;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorActive(Row, Col: Integer; const Value: Boolean);
begin
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  FIndicatorList^[Col + Row*ColCount].Active := Value;
  FIndicatorList^[Col + Row*ColCount].Dirty  := True;
  BackGroundChange;
end;
//****************************************************************************************************************************************************
function TiLedMatrix.GetIndicatorColor(Row, Col: Integer): TColor;
begin
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  Result := FIndicatorList^[Col + Row*ColCount].Color;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorColor(Row, Col: Integer; const Value: TColor);
begin
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  FIndicatorList^[Col + Row*ColCount].Color := Value;
  FIndicatorList^[Col + Row*ColCount].Dirty := True;
  BackGroundChange;
end;
//****************************************************************************************************************************************************
function TiLedMatrix.GetIndicatorCaption(Row, Col: Integer): String;
begin
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  Result := FIndicatorList^[Col + Row*ColCount].Caption;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorCaption(Row, Col: Integer; const Value: String);
begin
  if Length(Value) > 50                                                 then raise Exception.Create('Caption must be 50 or less characters');
  if (Row < 0) or (Row >= FRowCount) or (Col < 0) or (Col >= FColCount) then raise Exception.Create('Index out of bounds');
  FIndicatorList^[Col + Row*ColCount].Caption := Value;
  FIndicatorList^[Col + Row*ColCount].Dirty := True;
  BackGroundChange;
end;
//****************************************************************************************************************************************************
function TiLedMatrix.GetAutoSize: TPoint;
begin
  Result.x  := 2*FOuterMargin + FColCount*(FIndicatorWidth + FSpacingHorizontal);
  Result.y := 2*FOuterMargin + FRowCount*(FIndicatorHeight + FSpacingVertical);

  if Result.X > 3600 then Result.X := 3600;
  if Result.Y > 2880 then Result.Y := 2880;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.DoAutoSize;
var
  NewSize : TPoint;
begin
  if FDoingAutoSize then exit;
  if FAutoSize then
    begin
      FDoingAutoSize := True;
      try
        NewSize := GetAutoSize;
        Width  := NewSize.x;
        Height := NewSize.y;
        if Assigned(FOnAutoSize) then FOnAutoSize(Self);
      finally
        FDoingAutoSize := False;
      end;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetTransparent(const Value: Boolean);
begin
  inherited;
  RedoAll;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.iSetAutoSize(const Value: Boolean);
begin
  if FAutoSize <> Value then
    begin
      FAutoSize := Value;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetColCount(const Value: Integer);
begin
  if Value < 1 then exit;
  if FColCount <> Value then
    begin
      FColCount := Value;
      SetCapacity;
      RedoAll;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetRowCount(const Value: Integer);
begin
  if Value < 1 then exit;
  if FRowCount <> Value then
    begin
      FRowCount := Value;
      SetCapacity;
      RedoAll;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorStyle(const Value: TiLedMatrixIndiatorStyle);
begin
  if FIndicatorStyle <> Value then
    begin
      FIndicatorStyle := Value;
      if FIndicatorHeight <> FIndicatorWidth then FIndicatorHeight := FIndicatorWidth;
      RedoAll;
      BackGroundChange;
      DoAutoSize;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorBevelStyle(const Value: TiBevelStyle);
begin
  if FIndicatorBevelStyle <> Value then
    begin
      FIndicatorBevelStyle := Value;
      RedoAll;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorHeight(const Value: Integer);
begin
  if FIndicatorHeight <> Value then
    begin
      FIndicatorHeight := Value;
      if FIndicatorStyle = ilmisRound then FIndicatorWidth := Value;
      RedoAll;
      BackGroundChange;
      DoAutoSize;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorWidth(const Value: Integer);
begin
  if FIndicatorWidth <> Value then
    begin
      FIndicatorWidth := Value;
      if FIndicatorStyle = ilmisRound then FIndicatorHeight := Value;
      RedoAll;
      BackGroundChange;
      DoAutoSize;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorShowReflection(const Value: Boolean);
begin
  if FIndicatorShowReflection <> Value then
    begin
      FIndicatorShowReflection := Value;
      RedoAll;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetIndicatorActiveColor(const Value: TColor);
var
  Row, Col : Integer;
begin
   if FIndicatorActiveColor <> Value then
    begin
      FIndicatorActiveColor := Value;
      for Row := 0 to FRowCount -1 do
        for Col := 0 to FColCount - 1 do
          FIndicatorList^[Col + Row*ColCount].Color  := Value;
      RedoAll;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetOuterMargin(const Value: Integer);
begin
  if FOuterMargin <> Value then
    begin
      FOuterMargin := Value;
      RedoAll;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetSpacingHorizontal(const Value: Integer);
begin
  if FSpacingHorizontal <> Value then
    begin
      FSpacingHorizontal := Value;
      RedoAll;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetSpacingVertical(const Value: Integer);
begin
  if FSpacingVertical <> Value then
    begin
      FSpacingVertical := Value;
      RedoAll;
      DoAutoSize;
      BackGroundChange;
    end;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.SetCachedDrawing(const Value: Boolean);
begin
  inherited;
  RedoAll;
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.iPaintTo(Canvas: TCanvas);
begin
  if (FIndicatorWidth < 1) or (FIndicatorHeight < 1) then Exit;

  if CachedDrawing then iPaintCached(Canvas) else iPaintNonCached(Canvas);
end;
//****************************************************************************************************************************************************
procedure TiLedMatrix.iPaintCached(Canvas: TCanvas);
var
  Row, Col       : Integer;
  CurrentLeft    : Integer;
  CurrentTop     : Integer;
  ARect          : TRect;
  TempRect       : TRect;
  LedCacheObject : TLedCacheObject;
  IndicatorData  : TIndicatorData;
  CenterY        : Integer;
  ATextHeight    : Integer;
begin
  if BackGroundChanged then
    begin
      CreateBackGroundBitmap;
      with BackGroundBitmap, BackGroundBitmap.Canvas do
        begin
          if FFillBackGround then
            begin
              DrawBackGround(BackGroundBitmap.Canvas, BackGroundColor);
              FFillBackGround := False;
            end;

            CurrentLeft := (Width - (FIndicatorWidth + FSpacingHorizontal)*FColCount) div 2 + 1;

            for Col := 0 to FColCount - 1 do
            begin
              CurrentTop := (Height - (FIndicatorHeight + FSpacingVertical)*FRowCount) div 2 + 1;
              for Row := 0 to FRowCount - 1 do
                begin
                  ARect := Rect(CurrentLeft, CurrentTop, CurrentLeft + FIndicatorWidth, CurrentTop + FIndicatorHeight);
                  FIndicatorList^[Col + Row*ColCount].ARect := ARect;
                  IndicatorData := FIndicatorList^[Col + Row*ColCount];
                  if IndicatorData.Dirty then

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本久久一区二区| 黄网站免费久久| 91无套直看片红桃| 国产精品理伦片| 99久久777色| 亚洲国产一区视频| 欧美乱熟臀69xxxxxx| 美日韩一区二区三区| 久久女同互慰一区二区三区| 国产成a人亚洲| 亚洲精品一二三| 在线成人午夜影院| 精品一区二区av| 国产精品福利一区二区三区| 日本韩国欧美国产| 日本vs亚洲vs韩国一区三区二区| 欧美v国产在线一区二区三区| 成人性生交大片免费看中文| 一区二区三区免费| 精品粉嫩aⅴ一区二区三区四区| 国产成人综合在线观看| 一区二区成人在线视频| 欧美一区二区三区在线观看视频| 国产伦精品一区二区三区视频青涩| 国产精品乱码一区二区三区软件| 欧美亚洲国产一卡| 韩国在线一区二区| 一区二区日韩电影| 精品国产乱码91久久久久久网站| 成人av网站免费| 免费av成人在线| 亚洲日穴在线视频| 精品三级av在线| 色噜噜久久综合| 精品一区二区三区蜜桃| 亚洲人成网站精品片在线观看| 欧美一区二区视频网站| 成人福利电影精品一区二区在线观看| 亚洲va欧美va人人爽| 日本一区二区不卡视频| 欧美日韩国产123区| 99视频有精品| 国内一区二区视频| 视频在线观看一区二区三区| 国产精品丝袜91| 日韩午夜激情电影| 欧美性受xxxx黑人xyx| 丁香激情综合五月| 美女诱惑一区二区| 丝袜诱惑亚洲看片| 亚洲精选在线视频| 国产精品对白交换视频| 久久综合国产精品| 日韩精品一区二区三区在线 | 色激情天天射综合网| 国产精品综合av一区二区国产馆| 午夜欧美大尺度福利影院在线看 | 亚洲综合在线电影| 国产精品国产三级国产a| 欧美大度的电影原声| 欧美二区三区的天堂| 欧洲另类一二三四区| 99热精品一区二区| 国产精品99久久不卡二区| 秋霞午夜鲁丝一区二区老狼| 亚洲第一电影网| 亚洲影院免费观看| 亚洲精品一二三| 亚洲精品国产无天堂网2021 | 成人97人人超碰人人99| 国产一区二区三区精品欧美日韩一区二区三区 | ●精品国产综合乱码久久久久| 久久亚洲精品小早川怜子| 精品国产伦一区二区三区免费| 欧美一级片在线看| 日韩免费观看高清完整版| 欧美一区二区精美| 欧美va日韩va| 欧美精品一区二区三区一线天视频| 日韩午夜在线影院| 久久综合九色综合欧美98| 久久久九九九九| 国产精品嫩草99a| 国产精品久久精品日日| 成人欧美一区二区三区黑人麻豆 | 欧美激情中文字幕| 国产精品天干天干在线综合| 最好看的中文字幕久久| 亚洲精选免费视频| 午夜精品免费在线| 麻豆成人久久精品二区三区红 | 一区二区三区成人在线视频| 亚洲一区在线观看网站| 亚洲二区视频在线| 美日韩一级片在线观看| 国产伦精品一区二区三区视频青涩| 国产91清纯白嫩初高中在线观看 | 韩国成人福利片在线播放| 国产成人免费在线观看| 99精品在线观看视频| 欧美性xxxxx极品少妇| 欧美精品乱码久久久久久| 精品国产凹凸成av人网站| 亚洲国产精品v| 一区二区三区国产精品| 免费观看在线综合| 国产成人精品影院| 色婷婷av一区二区| 日韩一区二区精品| 国产精品美女久久福利网站| 一区二区三区欧美日韩| 麻豆精品视频在线观看视频| 成人av免费网站| 9191成人精品久久| 欧美国产1区2区| 日韩在线a电影| 成人app网站| 欧美一区午夜视频在线观看| 欧美激情在线一区二区| 午夜精品福利久久久| 国产福利视频一区二区三区| 欧美中文字幕久久| 国产亚洲短视频| 午夜视频久久久久久| 国产成人av网站| 欧美剧情电影在线观看完整版免费励志电影 | 午夜精品久久一牛影视| 高清国产一区二区三区| 欧美一区永久视频免费观看| 中文字幕一区二区三区在线不卡| 秋霞电影一区二区| 色综合咪咪久久| 国产午夜精品美女毛片视频| 亚洲成人高清在线| 成人性生交大片| 日韩一区二区高清| 亚洲午夜成aⅴ人片| 国产高清不卡一区| 91精品在线一区二区| 亚洲欧美激情一区二区| 国产成人无遮挡在线视频| 欧美一级片在线观看| 亚洲国产日韩综合久久精品| 成人高清伦理免费影院在线观看| 精品国产一区二区三区忘忧草| 亚洲午夜精品一区二区三区他趣| aa级大片欧美| 国产精品麻豆久久久| 国产福利不卡视频| 久久久精品黄色| 看片网站欧美日韩| 91 com成人网| 午夜日韩在线观看| 欧美在线制服丝袜| 亚洲自拍偷拍综合| 99精品视频中文字幕| 国产精品国产三级国产aⅴ无密码| 国产经典欧美精品| 久久中文娱乐网| 国产一区二区三区免费播放| 精品国产一区二区三区av性色| 日韩avvvv在线播放| 欧美一区二区三级| 日韩不卡手机在线v区| 欧美群妇大交群的观看方式| 亚洲午夜视频在线| 欧美日韩国产影片| 日韩精品国产精品| 日韩欧美国产高清| 捆绑调教美女网站视频一区| 精品国产一区二区三区四区四 | 欧美美女网站色| 日本三级亚洲精品| 精品国产一区二区三区不卡| 黄页视频在线91| 中文在线一区二区| 色婷婷综合五月| 亚洲va天堂va国产va久| 欧美一区二区三区免费大片 | 成人听书哪个软件好| 欧美国产精品v| 97久久超碰国产精品电影| 亚洲欧美激情小说另类| 欧美日韩亚洲综合在线| 日本中文字幕一区二区有限公司| 日韩欧美的一区二区| 国产精品一区在线观看乱码 | 精品久久久久久久久久久院品网| 国产美女精品人人做人人爽| 国产精品欧美经典| 91久久香蕉国产日韩欧美9色| 午夜精品福利一区二区蜜股av| 日韩精品在线网站| 不卡在线视频中文字幕| 亚洲人成电影网站色mp4| 欧美剧在线免费观看网站| 精品一二三四区| 亚洲私人影院在线观看| 欧美欧美午夜aⅴ在线观看| 国产麻豆精品在线观看|