📄 iobjectcanvas.pas
字号:
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 + -