Ignore:
Timestamp:
Dec 28, 2017, 1:14:31 AM (6 years ago)
Author:
chronos
Message:
  • Added: API function DrawFrame.
  • Fixed: Drawing position of TWindow frame.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Packages/Kernel/UAPI.pas

    r15 r16  
    1111type
    1212  TApiCommand = (acNone, acWriteText, acDrawText, acDrawLine, acDrawRect, acSleep,
    13     acReadMessage, acWindowCreate, acWindowSetAttr, acGetWindowCanvas);
     13    acReadMessage, acWindowCreate, acWindowSetAttr, acGetWindowCanvas,
     14    acDrawFrame);
    1415
    1516  TDrawTextParams = record
     
    4849    procedure DrawLine(CanvasId: Integer; P1, P2: TPoint; Color: TColor);
    4950    procedure DrawRect(CanvasId: Integer; Rect: TRectangle; Color: TColor);
     51    procedure DrawFrame(CanvasId: Integer; Rect: TRectangle; Color: TColor);
    5052    procedure Sleep(Time: TDateTime);
    5153    procedure ReadMessage(Message: TIPCMessage);
     
    6668    procedure DrawLine(CanvasId: Integer; P1, P2: TPoint; Color: TColor);
    6769    procedure DrawRect(CanvasId: Integer; Rect: TRectangle; Color: TColor);
     70    procedure DrawFrame(CanvasId: Integer; Rect: TRectangle; Color: TColor);
    6871    procedure Sleep(Time: TDateTime);
    6972    procedure ReadMessage(Message: TIPCMessage);
     
    124127end;
    125128
     129procedure TUserApi.DrawFrame(CanvasId: Integer; Rect: TRectangle; Color: TColor
     130  );
     131var
     132  Params: TDrawRectParams;
     133begin
     134  Params.CanvasId := CanvasId;
     135  Params.Rect := Rect;
     136  Params.Color := Color;
     137  Call(acDrawFrame, @Params);
     138end;
     139
    126140procedure TUserApi.Sleep(Time: TDateTime);
    127141begin
     
    163177      TDrawLineParams(Data^).P2, TDrawLineParams(Data^).Color);
    164178    acDrawRect: DrawRect(TDrawRectParams(Data^).CanvasId, TDrawRectParams(Data^).Rect,
     179      TDrawRectParams(Data^).Color);
     180    acDrawFrame: DrawFrame(TDrawRectParams(Data^).CanvasId, TDrawRectParams(Data^).Rect,
    165181      TDrawRectParams(Data^).Color);
    166182    acDrawText: DrawText(TDrawTextParams(Data^).CanvasId, TDrawTextParams(Data^).P,
     
    210226procedure TKernelApi.DrawRect(CanvasId: Integer; Rect: TRectangle; Color: TColor);
    211227var
    212   Screen: TScreen;
    213228  Canvas: TCanvas;
    214229begin
     
    216231  if Assigned(Canvas) then begin
    217232    Canvas.DrawRect(Rect, Color);
     233  end;
     234end;
     235
     236procedure TKernelApi.DrawFrame(CanvasId: Integer; Rect: TRectangle;
     237  Color: TColor);
     238var
     239  Canvas: TCanvas;
     240begin
     241  Canvas := TKernel(Kernel).Desktop.FindCanvasById(CanvasId);
     242  if Assigned(Canvas) then begin
     243    Canvas.DrawFrame(Rect, Color);
    218244  end;
    219245end;
     
    265291    Window.Canvas.Position := Bounds.Position;
    266292    Window.Visible := Visible;
     293    Window.Desktop.Paint;
    267294  end;
    268295end;
Note: See TracChangeset for help on using the changeset viewer.