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

📄 iobjectcanvas.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    end;
  FHandleCounter := 0;
  InvalidateChange;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.BringObjectToFront(Handle: Integer);
var
  ItemIndex : Integer;
begin
  ItemIndex := FObjectList.IndexOf(IntToStr(Handle));
  if ItemIndex = - 1 then raise Exception.Create('Object not Found');
  FObjectList.Move(ItemIndex, FObjectList.Count - 1);
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SendObjectToBack(Handle: Integer);
var
  ItemIndex : Integer;
begin
  ItemIndex := FObjectList.IndexOf(IntToStr(Handle));
  if ItemIndex = - 1 then raise Exception.Create('Object not Found');
  FObjectList.Move(ItemIndex, 0);
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.NeedsRedraw;
begin
  InvalidateChange;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetOriginX(const Value: Double);
begin
  if FOriginX <> Value then
    begin
      FOriginX := Value;
      NeedsRedraw;
    end;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetOriginY(const Value: Double);
begin
  if FOriginY <> Value then
    begin
      FOriginY := Value;
      NeedsRedraw;
    end;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetDisplayRangeX(const Value: Double);
begin
  if FDisplayRangeX <> Value then
    begin
      FDisplayRangeX := Value;
      NeedsRedraw;
    end;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetDisplayRangeY(const Value: Double);
begin
  if FDisplayRangeY <> Value then
    begin
      FDisplayRangeY := Value;
      NeedsRedraw;
    end;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectDefaults(iDrawObject: TiDrawObject);
begin
  iDrawObject.Visible       := True;
  iDrawObject.PenColor      := DefaultPenColor;
  iDrawObject.PenStyle      := DefaultPenStyle;
  iDrawObject.PenWidth      := DefaultPenWidth;

  iDrawObject.BrushColor    := DefaultBrushColor;
  iDrawObject.BrushStyle    := DefaultBrushStyle;

  iDrawObject.FontName      := DefaultFontName;
  iDrawObject.FontSize      := DefaultFontSize;
  iDrawObject.FontColor     := DefaultFontColor;
  iDrawObject.FontBold      := DefaultFontBold;
  iDrawObject.FontItalic    := DefaultFontItalic;
  iDrawObject.FontUnderLine := DefaultFontUnderLine;
  iDrawObject.FontStrikeOut := DefaultFontStrikeOut;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddObject(iDrawObject: TiDrawObject): Integer;
begin
  FObjectList.AddObject(IntToStr(FHandleCounter), iDrawObject);
  Result := FHandleCounter;
  FHandleCounter := FHandleCounter + 1;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.GetObject(Handle: Integer): TiDrawObject;
var
  ItemIndex : Integer;
begin
  ItemIndex := FObjectList.IndexOf(IntToStr(Handle));
  if ItemIndex = - 1 then raise Exception.Create('Object not Found');
  Result := FObjectList.Objects[ItemIndex] as TiDrawObject;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.RemoveObject(Handle: Integer);
var
  ItemIndex : Integer;
begin
  ItemIndex := FObjectList.IndexOf(IntToStr(Handle));
  if ItemIndex = - 1 then raise Exception.Create('Object not Found');
  FObjectList.Objects[ItemIndex].Free;
  FObjectList.Delete(ItemIndex);
  NeedsRedraw;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddEllipse(X, Y, Width, Height: Double): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject        := TiDrawObject.Create;
  iDrawObject.AType  := tidoEllipse;
  iDrawObject.X      := X;
  iDrawObject.Y      := Y;
  iDrawObject.Width  := Width;
  iDrawObject.Height := Height;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddRectangle(X, Y, Width, Height: Double): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject        := TiDrawObject.Create;
  iDrawObject.AType  := tidoRectangle;
  iDrawObject.X      := X;
  iDrawObject.Y      := Y;
  iDrawObject.Width  := Width;
  iDrawObject.Height := Height;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddArc(X, Y, Width, Height, StartAngle, StopAngle: Double): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject            := TiDrawObject.Create;
  iDrawObject.AType      := tidoArc;
  iDrawObject.X          := X;
  iDrawObject.Y          := Y;
  iDrawObject.Width      := Width;
  iDrawObject.Height     := Height;
  iDrawObject.StartAngle := StartAngle;
  iDrawObject.StopAngle  := StopAngle;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddLine(Left, Top, Right, Bottom: Double): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject        := TiDrawObject.Create;
  iDrawObject.AType  := tidoLine;
  iDrawObject.X      := Left;
  iDrawObject.Y      := Top;
  iDrawObject.Width  := Right;
  iDrawObject.Height := Bottom;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddLabel(X, Y: Double; Caption: String): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject             := TiDrawObject.Create;
  iDrawObject.AType       := tidoText;
  iDrawObject.X           := X;
  iDrawObject.Y           := Y;
  iDrawObject.FontCaption := Caption;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddImage(X, Y: Double; ImageIndex: Integer): Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject             := TiDrawObject.Create;
  iDrawObject.AType       := tidoImage;
  iDrawObject.X           := X;
  iDrawObject.Y           := Y;
  iDrawObject.ImageIndex  := ImageIndex;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
function TiObjectCanvas.AddPolygon: Integer;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject             := TiDrawObject.Create;
  iDrawObject.AType       := tidoPolygon;
  SetObjectDefaults(iDrawObject);

  Result := AddObject(iDrawObject);
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectType(Handle: Integer; AType: TiDrawObjectType);
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject       := GetObject(Handle);
  iDrawObject.AType := AType;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.GetObjectType(Handle: Integer): TiDrawObjectType;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  Result := iDrawObject.AType;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.GetObjectVisible(Handle: Integer): Boolean;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  Result := iDrawObject.Visible;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectVisible(Handle: Integer; Visible: Boolean);
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject         := GetObject(Handle);
  iDrawObject.Visible := Visible;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectBrush(Handle: Integer; Color: TColor; Style: TBrushStyle);
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject            := GetObject(Handle);
  iDrawObject.BrushColor := Color;
  iDrawObject.BrushStyle := Style;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectBrushColor(Handle: Integer; Color: TColor);
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  iDrawObject.BrushColor := Color;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectBrushStyle(Handle: Integer; Style: TBrushStyle);
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  iDrawObject.BrushStyle := Style;
  NeedsRedraw;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.GetObjectBrushColor(Handle: Integer): TColor;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  Result := iDrawObject.BrushColor;
end;
//*************************************************************************************************************************************
function TiObjectCanvas.GetObjectBrushStyle(Handle: Integer): TBrushStyle;
var
  iDrawObject : TiDrawObject;
begin
  iDrawObject := GetObject(Handle);
  Result := iDrawObject.BrushStyle;
end;
//*************************************************************************************************************************************
procedure TiObjectCanvas.SetObjectCaption(Handle: Integer; Caption: String);
var

⌨️ 快捷键说明

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