Ignore:
Timestamp:
Dec 30, 2018, 1:01:14 AM (5 years ago)
Author:
chronos
Message:
  • Added: Close button to window title bar.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/overos/UFormMain.pas

    r21 r22  
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
    9   UWindow, USystem, UTypes, UMouse, UGraphics, UControls;
     9  Types, UWindow, USystem, UTypes, UMouse, UGraphics, UControls, UApplication;
    1010
    1111type
     
    1616  TFormMain = class(TForm)
    1717    Image1: TImage;
     18    Timer1: TTimer;
    1819    procedure Image1MouseDown(Sender: TObject; Button: TControlsMouseButton;
    1920      Shift: TShiftState; X, Y: Integer);
     
    2324    procedure FormResize(Sender: TObject);
    2425    procedure FormShow(Sender: TObject);
     26    procedure Timer1Timer(Sender: TObject);
    2527  private
    2628
    2729  public
     30    App: TApplication;
    2831    System: TSystem;
    2932  end;
     
    3639    procedure DrawArea(Rect: TRectangle; Color: TColor); override;
    3740    procedure DrawText(P: TPosition; Color: TColor; Text: string); override;
     41    function GetTextSize(Text: string): TSize; override;
    3842  end;
    3943
     
    6670procedure TCanvasScreen.DrawText(P: TPosition; Color: TColor; Text: string);
    6771begin
     72  Canvas.Brush.Style := bsClear;
    6873  Canvas.Font.Color := Color;
    6974  Canvas.TextOut(P.Left, P.Top, Text);
     75end;
     76
     77function TCanvasScreen.GetTextSize(Text: string): TSize;
     78var
     79  Size: Types.TSize;
     80begin
     81  Size := Canvas.TextExtent(Text);
     82  Result := TSize.Create(Size.cx, Size.cy);
    7083end;
    7184
     
    125138  System.Screen.Size := TSize.Create(Width, Height);
    126139
     140  App := TApplication.Create;
     141
    127142  Window := System.Screen.CreateWindow('Test');
     143  Window.Application := App;
    128144
    129145  Window := System.Screen.CreateWindow('Commander');
    130   Window.Rectangle.Position := TPosition.Create(100, 50);
    131   Window.Rectangle.Size := TSize.Create(400, 200);
     146  Window.Position := TPosition.Create(100, 50);
     147  Window.Size := TSize.Create(400, 200);
     148  Window.Application := App;
    132149  Button := TButton.Create;
    133150  Button.Rectangle := TRectangle.Create(TPosition.Create(10, 50), TSize.Create(100, 32));
     
    137154
    138155  Window := System.Screen.CreateWindow('Calculator');
    139   Window.Rectangle.Position := TPosition.Create(200, 100);
    140   Window.Rectangle.Size := TSize.Create(300, 200);
     156  Window.Application := App;
     157  Window.Position := TPosition.Create(200, 100);
     158  Window.Size := TSize.Create(300, 200);
    141159
    142160  System.Screen.Paint;
    143161end;
    144162
     163procedure TFormMain.Timer1Timer(Sender: TObject);
     164begin
     165  App.ProcessMessages;
     166end;
     167
    145168end.
    146169
Note: See TracChangeset for help on using the changeset viewer.