Changeset 121 for trunk/UEngine.pas
- Timestamp:
- Oct 26, 2022, 3:12:02 PM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UEngine.pas
r119 r121 157 157 miFastTrain); 158 158 TMetroImprovementSet = set of TMetroImprovement; 159 TFullScrenChangeEvent = procedure (Sender: TObject; Active: Boolean) of object; 159 160 160 161 { TEngine } 161 162 162 TEngine = class 163 TEngine = class(TComponent) 163 164 private 164 165 FDarkMode: Boolean; 166 FFullScreen: Boolean; 165 167 FOnDarkModeChange: TNotifyEvent; 168 FOnExit: TNotifyEvent; 169 FOnFullScreenChange: TFullScrenChangeEvent; 166 170 FState: TGameState; 167 171 FTranslator: TTranslator; … … 219 223 UpdatedShape: TStationShape; Distance: Integer); 220 224 procedure SetDarkMode(AValue: Boolean); 225 procedure SetFullScreen(AValue: Boolean); 221 226 procedure SetState(AValue: TGameState); 222 227 procedure TrainsMovement; … … 304 309 procedure LoadFromRegistry; 305 310 procedure SaveToRegistry; 306 constructor Create ;311 constructor Create(AOwner: TComponent); override; 307 312 destructor Destroy; override; 308 313 procedure Tick; … … 313 318 published 314 319 property DarkMode: Boolean read FDarkMode write SetDarkMode; 320 property FullScreen: Boolean read FFullScreen write SetFullScreen; 315 321 property Translator: TTranslator read FTranslator write FTranslator; 316 322 property OnDarkModeChange: TNotifyEvent read FOnDarkModeChange 317 323 write FOnDarkModeChange; 324 property OnFullScreenChange: TFullScrenChangeEvent read FOnFullScreenChange 325 write FOnFullScreenChange; 326 property OnExit: TNotifyEvent read FOnExit write FOnExit; 318 327 end; 319 328 … … 349 358 350 359 uses 351 U FormMain, ULanguages;360 ULanguages; 352 361 353 362 resourcestring … … 1404 1413 end; 1405 1414 1415 procedure TEngine.SetFullScreen(AValue: Boolean); 1416 begin 1417 if FFullScreen = AValue then Exit; 1418 FFullScreen := AValue; 1419 if Assigned(FOnFullScreenChange) then 1420 FOnFullScreenChange(Self, FFullScreen); 1421 end; 1422 1406 1423 procedure TEngine.SetState(AValue: TGameState); 1407 1424 begin … … 1660 1677 procedure TEngine.MenuItemExit(Sender: TObject); 1661 1678 begin 1662 FormMain.Close;1679 if Assigned(FOnExit) then FOnExit(Self); 1663 1680 end; 1664 1681 … … 1739 1756 BackgroundColor := Colors.MenuItemBackground; 1740 1757 BackgroundSelectedColor := Colors.MenuItemBackgroundSelected; 1741 Checked := F ormMain.FullScreen;1758 Checked := FullScreen; 1742 1759 end; 1743 1760 with AddButton(SBack, MenuItemBack) do begin … … 1883 1900 procedure TEngine.FullScreenChanged(Sender: TObject); 1884 1901 begin 1885 FormMain.FullScreen := TMenuItemCheckBox(Sender).Checked; 1886 with TPersistentForm.Create(nil) do 1887 try 1888 Form := FormMain; 1889 SetFullScreen(FormMain.FullScreen); 1890 finally 1891 Free; 1892 end; 1902 FullScreen := TMenuItemCheckBox(Sender).Checked; 1893 1903 end; 1894 1904 … … 3362 3372 end; 3363 3373 3364 constructor TEngine.Create; 3365 begin 3374 constructor TEngine.Create(AOwner: TComponent); 3375 begin 3376 inherited; 3366 3377 ImprovementImageSize := ScaleX(64, 96); 3367 3378 IconSize := ScaleX(32, 96);
Note:
See TracChangeset
for help on using the changeset viewer.