Changeset 203
- Timestamp:
- May 18, 2018, 12:54:37 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormClient.lfm
r202 r203 1 1 object FormClient: TFormClient 2 Left = 4182 Left = 662 3 3 Height = 621 4 Top = 2534 Top = 413 5 5 Width = 775 6 6 Caption = 'Client' 7 7 ClientHeight = 621 8 8 ClientWidth = 775 9 DesignTimePPI = 1 209 DesignTimePPI = 144 10 10 OnClose = FormClose 11 11 OnCreate = FormCreate … … 17 17 object StatusBar1: TStatusBar 18 18 Left = 0 19 Height = 2820 Top = 59 319 Height = 30 20 Top = 591 21 21 Width = 775 22 22 Panels = < … … 34 34 object ToolBar1: TToolBar 35 35 Left = 0 36 Height = 59 336 Height = 591 37 37 Top = 0 38 38 Width = 32 … … 75 75 object PaintBox1: TPaintBox 76 76 Left = 32 77 Height = 59 377 Height = 591 78 78 Top = 0 79 79 Width = 743 … … 132 132 ImageIndex = 0 133 133 OnExecute = AGameEndTurnExecute 134 ShortCut = 16468 134 135 end 135 136 end -
trunk/Forms/UFormClient.pas
r202 r203 76 76 LastTimerTime: TDateTime; 77 77 TimerPeriod: TDateTime; 78 TurnActive: Boolean; 78 79 procedure SetClient(AValue: TClient); 79 80 procedure DoClientChange(Sender: TObject); 80 procedure DoOnMove(CellFrom, CellTo: TCell; var CountOnce, 81 procedure DoTurnStart(Sender: TObject); 82 procedure DoMove(CellFrom, CellTo: TCell; var CountOnce, 81 83 CountRepeat: Integer; Update: Boolean; var Confirm: Boolean); 82 84 public 83 85 procedure LoadConfig(Config: TXmlConfig; Path: string); 84 86 procedure SaveConfig(Config: TXmlConfig; Path: string); 85 procedure ReloadView;87 procedure UpdateInterface; 86 88 procedure Redraw; 87 89 property Client: TClient read FClient write SetClient; … … 103 105 { TFormClient } 104 106 105 procedure TFormClient.Do OnMove(CellFrom, CellTo: TCell; var CountOnce,107 procedure TFormClient.DoMove(CellFrom, CellTo: TCell; var CountOnce, 106 108 CountRepeat: Integer; Update: Boolean; var Confirm: Boolean); 107 109 var … … 210 212 FClient.Form := Self; 211 213 FClient.OnChange := DoClientChange; 212 FClient.OnMove := DoOnMove; 214 FClient.OnMove := DoMove; 215 FClient.OnTurnStart := DoTurnStart(); 213 216 end; 214 217 Redraw; … … 218 221 begin 219 222 Redraw; 223 end; 224 225 procedure TFormClient.DoTurnStart(Sender: TObject); 226 begin 227 TurnActive := True; 228 UpdateInterface; 220 229 end; 221 230 … … 238 247 end; 239 248 240 procedure TFormClient. ReloadView;249 procedure TFormClient.UpdateInterface; 241 250 begin 242 251 if AToolBarBigIcons.Checked then begin … … 255 264 ToolBar1.Visible := AToolBarVisible.Checked; 256 265 StatusBar1.Visible := AStatusBarVisible.Checked; 266 AGameEndTurn.Enabled := TurnActive; 257 267 end; 258 268 … … 295 305 begin 296 306 AToolBarBigIcons.Checked := not AToolBarBigIcons.Checked; 297 ReloadView;307 UpdateInterface; 298 308 end; 299 309 … … 301 311 begin 302 312 AStatusBarVisible.Checked := not AStatusBarVisible.Checked; 303 ReloadView;313 UpdateInterface; 304 314 end; 305 315 306 316 procedure TFormClient.AGameEndTurnExecute(Sender: TObject); 307 var 308 P: TGameProtocolClient; 309 P2: TCommPin; 310 begin 311 P := Client.Protocol; 312 P2 := P.Pin; 317 begin 318 TurnActive := False; 313 319 Client.Protocol.TurnEnd; 320 UpdateInterface; 314 321 end; 315 322 … … 317 324 begin 318 325 AToolBarVisible.Checked := not AToolBarVisible.Checked; 319 ReloadView;326 UpdateInterface; 320 327 end; 321 328 … … 370 377 LoadConfig(Core.XMLConfig1, 'FormClient'); 371 378 Core.PersistentForm.Load(Self); 372 ReloadView;379 UpdateInterface; 373 380 Redraw; 374 381 end; -
trunk/Forms/UFormMain.lfm
r181 r203 1 1 object FormMain: TFormMain 2 Left = 4472 Left = 801 3 3 Height = 621 4 Top = 3 034 Top = 352 5 5 Width = 775 6 6 Caption = 'xTactics' 7 ClientHeight = 5 967 ClientHeight = 587 8 8 ClientWidth = 775 9 DesignTimePPI = 1 209 DesignTimePPI = 144 10 10 Menu = MainMenu1 11 11 OnClose = FormClose … … 13 13 OnDestroy = FormDestroy 14 14 OnShow = FormShow 15 LCLVersion = '1.8. 0.6'15 LCLVersion = '1.8.2.0' 16 16 WindowState = wsMaximized 17 17 object ToolBar1: TToolBar … … 77 77 object PanelMain: TPanel 78 78 Left = 0 79 Height = 5 5679 Height = 547 80 80 Top = 40 81 81 Width = 775 … … 92 92 object MenuItem2: TMenuItem 93 93 Action = Core.AGameNew 94 Caption = 'New...' 94 95 end 95 96 object MenuItem3: TMenuItem … … 99 100 Action = Core.AGameRestart 100 101 end 101 object MenuItem4: TMenuItem102 Action = Core.AGameEndTurn103 end104 102 object MenuItem14: TMenuItem 105 103 Action = Core.AGameLoad … … 110 108 object MenuItem15: TMenuItem 111 109 Action = Core.AGameSave 110 ShortCut = 16467 111 end 112 object MenuItem29: TMenuItem 113 Action = Core.AGameSaveAs 114 Caption = 'Save as' 115 ShortCut = 24659 112 116 end 113 117 object MenuItem5: TMenuItem -
trunk/Forms/UFormMain.pas
r196 r203 43 43 MenuItem27: TMenuItem; 44 44 MenuItem28: TMenuItem; 45 MenuItem29: TMenuItem; 45 46 MenuItemLoadRecent: TMenuItem; 46 47 MenuItem3: TMenuItem; 47 MenuItem4: TMenuItem;48 48 MenuItem5: TMenuItem; 49 49 MenuItem6: TMenuItem; -
trunk/Languages/xtactics.cs.po
r202 r203 9 9 "MIME-Version: 1.0\n" 10 10 "Content-Transfer-Encoding: 8bit\n" 11 "X-Generator: Poedit 1.8.8\n"11 "X-Generator: Poedit 2.0.6\n" 12 12 "Language: cs\n" 13 13 … … 35 35 msgstr "Ukončit hru" 36 36 37 #: tcore.agameendturn.caption38 msgctxt "TCORE.AGAMEENDTURN.CAPTION"39 msgid "End turn"40 msgstr "Ukončit tah"41 42 #: tcore.agameendturn.hint43 msgid "End player turn"44 msgstr "Ukončit tah hráče"45 46 37 #: tcore.agameload.caption 47 38 msgid "Load" … … 71 62 msgstr "Uložit" 72 63 64 #: tcore.agamesaveas.caption 65 msgid "Save as..." 66 msgstr "" 67 73 68 #: tcore.ahelp.caption 74 69 msgctxt "tcore.ahelp.caption" … … 153 148 154 149 #: tformclient.agameendturn.caption 155 #, fuzzy156 150 msgctxt "tformclient.agameendturn.caption" 157 151 msgid "End turn" … … 242 236 msgstr "Nápověda" 243 237 238 #: tformmain.menuitem2.caption 239 msgid "New..." 240 msgstr "" 241 244 242 #: tformmain.menuitem22.caption 245 243 msgctxt "tformmain.menuitem22.caption" 246 244 msgid "Statusbar visible" 247 245 msgstr "Viditelná stavová lišta" 246 247 #: tformmain.menuitem29.caption 248 msgid "Save as" 249 msgstr "" 248 250 249 251 #: tformmain.menuitem8.caption … … 970 972 msgid "64-bit UInt read overflow." 971 973 msgstr "Přetečení při čtení 64-bit UInt" 972 -
trunk/Languages/xtactics.po
r202 r203 25 25 msgstr "" 26 26 27 #: tcore.agameendturn.caption28 msgctxt "TCORE.AGAMEENDTURN.CAPTION"29 msgid "End turn"30 msgstr ""31 32 #: tcore.agameendturn.hint33 msgid "End player turn"34 msgstr ""35 36 27 #: tcore.agameload.caption 37 28 msgid "Load" … … 61 52 msgstr "" 62 53 54 #: tcore.agamesaveas.caption 55 msgid "Save as..." 56 msgstr "" 57 63 58 #: tcore.ahelp.caption 64 59 msgctxt "TCORE.AHELP.CAPTION" … … 231 226 msgstr "" 232 227 228 #: tformmain.menuitem2.caption 229 msgid "New..." 230 msgstr "" 231 233 232 #: tformmain.menuitem22.caption 234 233 msgctxt "tformmain.menuitem22.caption" 235 234 msgid "Statusbar visible" 235 msgstr "" 236 237 #: tformmain.menuitem29.caption 238 msgid "Save as" 236 239 msgstr "" 237 240 -
trunk/UClientAI.pas
r202 r203 17 17 //Targets: TFPGObjectList<TPlayer>; 18 18 CellProcessDirection: Boolean; 19 Player: TPlayer;20 19 procedure AttackNeutral; 21 20 procedure AttackPlayers; … … 34 33 procedure TComputer.DoTurnStart(Sender: TObject); 35 34 begin 36 inherited DoTurnStart(Sender); 35 Process; 36 Protocol.TurnEnd; 37 37 end; 38 38 … … 89 89 if NeighborCell.GetAvialPower < AttackPower then 90 90 AttackPower := NeighborCell.GetAvialPower; 91 Self.Player.SetMove(NeighborCell, Cell, AttackPower, False);91 ControlPlayer.SetMove(NeighborCell, Cell, AttackPower, False); 92 92 TotalAttackPower := TotalAttackPower + AttackPower; 93 93 end; … … 109 109 NeighborCell: TCell; 110 110 begin 111 if Player.Defensive then Exit;111 if ControlPlayer.Defensive then Exit; 112 112 113 113 AllCells := Game.Map.Cells; … … 117 117 // Get list of all attack target cells 118 118 for TargetCell in AllCells do begin 119 if (TargetCell.Terrain <> ttVoid) and (TargetCell.Player <> Player) and119 if (TargetCell.Terrain <> ttVoid) and (TargetCell.Player <> ControlPlayer) and 120 120 (TargetCell.Player <> nil) then begin 121 121 CanAttack := 0; 122 122 for NeighborCell in TargetCell.Neighbors do 123 if NeighborCell.Player = Player then begin123 if NeighborCell.Player = ControlPlayer then begin 124 124 Inc(CanAttack); 125 125 end; … … 137 137 TotalPower := 0; 138 138 for NeighborCell in TargetCell.Neighbors do 139 if NeighborCell.Player = Player then begin139 if NeighborCell.Player = ControlPlayer then begin 140 140 TotalPower := TotalPower + NeighborCell.GetAvialPower; 141 141 end; 142 142 // Attack if target is weaker 143 143 if Game.AttackProbability(TotalPower, TargetCell.Power) >= 144 ComputerAggroProbability[ Player.Agressivity] then begin144 ComputerAggroProbability[ControlPlayer.Agressivity] then begin 145 145 // Try to limit total attacking power to necessary minimum 146 146 while Game.AttackProbability(TotalPower - 1, TargetCell.Power) >= 147 ComputerAggroProbability[ Player.Agressivity] do147 ComputerAggroProbability[ControlPlayer.Agressivity] do 148 148 Dec(TotalPower); 149 149 … … 151 151 TotalAttackPower := 0; 152 152 for NeighborCell in TargetCell.Neighbors do 153 if NeighborCell.Player = Player then begin153 if NeighborCell.Player = ControlPlayer then begin 154 154 // Use only necessary power 155 155 AttackPower := TotalPower - TotalAttackPower; 156 156 if NeighborCell.GetAvialPower < AttackPower then 157 157 AttackPower := NeighborCell.GetAvialPower; 158 Self. Player.SetMove(NeighborCell, TargetCell, AttackPower, False);158 Self.ControlPlayer.SetMove(NeighborCell, TargetCell, AttackPower, False); 159 159 TotalAttackPower := TotalAttackPower + AttackPower; 160 160 if TotalAttackPower >= TotalPower then Break; … … 258 258 begin 259 259 // If available power remains then use all for existed unit moves 260 for Move in Player.Moves do260 for Move in ControlPlayer.Moves do 261 261 with Move do begin 262 262 if CellFrom.GetAvialPower > 0 then begin -
trunk/UCore.lfm
r197 r203 3 3 OnDestroy = DataModuleDestroy 4 4 OldCreateOrder = False 5 Height = 6766 HorizontalOffset = 2757 VerticalOffset = 1908 Width = 1 0489 PPI = 1 205 Height = 811 6 HorizontalOffset = 330 7 VerticalOffset = 228 8 Width = 1258 9 PPI = 144 10 10 object ActionList1: TActionList 11 11 Images = ImageListSmall 12 left = 1 1413 top = 5012 left = 137 13 top = 60 14 14 object AExit: TAction 15 15 Caption = 'Exit' … … 20 20 end 21 21 object AGameNew: TAction 22 Category = 'Game' 22 23 Caption = 'New' 23 24 Hint = 'New game' … … 27 28 end 28 29 object AGameEnd: TAction 30 Category = 'Game' 29 31 Caption = 'End' 30 32 Hint = 'End game' … … 33 35 ShortCut = 16454 34 36 end 35 object AGameEndTurn: TAction36 Caption = 'End turn'37 Hint = 'End player turn'38 ImageIndex = 039 OnExecute = AGameEndTurnExecute40 ShortCut = 1646841 end42 37 object AGameRestart: TAction 38 Category = 'Game' 43 39 Caption = 'Restart' 44 40 Hint = 'Restart game' … … 54 50 ShortCut = 120 55 51 end 56 object AGameSave: TAction 57 Caption = 'Save' 52 object AGameSaveAs: TAction 53 Category = 'Game' 54 Caption = 'Save as...' 58 55 ImageIndex = 11 59 OnExecute = AGameSave Execute56 OnExecute = AGameSaveAsExecute 60 57 ShortCut = 16467 61 58 end 62 59 object AGameLoad: TAction 60 Category = 'Game' 63 61 Caption = 'Load' 64 62 ImageIndex = 10 … … 91 89 OnExecute = APlayersStatsExecute 92 90 end 91 object AGameSave: TAction 92 Category = 'Game' 93 Caption = 'Save' 94 ImageIndex = 11 95 OnExecute = AGameSaveExecute 96 end 93 97 end 94 98 object ImageListSmall: TImageList 95 left = 65596 top = 35099 left = 786 100 top = 420 97 101 Bitmap = { 98 102 4C690C00000010000000100000000000000000000000E3AA4BD6E5B35EFFE3B1 … … 486 490 POFilesFolder = 'Languages' 487 491 OnTranslate = CoolTranslator1Translate 488 left = 1 14489 top = 363492 left = 137 493 top = 436 490 494 end 491 495 object ImageListLarge: TImageList 492 496 Height = 32 493 497 Width = 32 494 left = 655495 top = 2 38498 left = 786 499 top = 286 496 500 Bitmap = { 497 501 4C690C0000002000000020000000000000000000000000000000E2AA4B36E2A9 … … 2038 2042 RootName = 'CONFIG' 2039 2043 ReadOnly = False 2040 left = 1 142041 top = 4632044 left = 137 2045 top = 556 2042 2046 end 2043 2047 object OpenDialog1: TOpenDialog 2044 2048 DefaultExt = '.xtmap' 2045 left = 9382046 top = 2 432049 left = 1126 2050 top = 292 2047 2051 end 2048 2052 object SaveDialog1: TSaveDialog 2049 2053 DefaultExt = '.xtmap' 2050 left = 9382051 top = 1 382054 left = 1126 2055 top = 166 2052 2056 end 2053 2057 object ApplicationInfo: TApplicationInfo … … 2062 2066 AuthorsName = 'Chronos' 2063 2067 AppName = 'xTactics' 2064 ReleaseDate = 4323 42068 ReleaseDate = 43238 2065 2069 RegistryKey = '\Software\xTactics' 2066 2070 RegistryRoot = rrKeyCurrentUser 2067 2071 License = 'CC0' 2068 left = 1 142069 top = 1 502072 left = 137 2073 top = 180 2070 2074 end 2071 2075 object PersistentForm: TPersistentForm 2072 2076 MinVisiblePart = 50 2073 2077 EntireVisible = False 2074 left = 6502075 top = 5002078 left = 780 2079 top = 600 2076 2080 end 2077 2081 object ScaleDPI1: TScaleDPI 2078 2082 AutoDetect = False 2079 left = 1 132080 top = 5632083 left = 136 2084 top = 676 2081 2085 end 2082 2086 object LastOpenedList1: TLastOpenedList 2083 2087 MaxCount = 10 2084 2088 OnChange = LastOpenedList1Change 2085 left = 1 142086 top = 2502089 left = 137 2090 top = 300 2087 2091 end 2088 2092 end -
trunk/UCore.pas
r202 r203 17 17 TCore = class(TDataModule) 18 18 AAbout: TAction; 19 AGameSave: TAction; 19 20 APlayersStats: TAction; 20 21 ANewSpectatorClient: TAction; … … 22 23 AShowCharts: TAction; 23 24 AHelp: TAction; 24 AGameSave : TAction;25 AGameSaveAs: TAction; 25 26 AGameLoad: TAction; 26 27 ApplicationInfo: TApplicationInfo; … … 29 30 AExit: TAction; 30 31 AGameEnd: TAction; 31 AGameEndTurn: TAction;32 32 AGameNew: TAction; 33 33 AGameRestart: TAction; … … 48 48 procedure AGameNewExecute(Sender: TObject); 49 49 procedure AGameRestartExecute(Sender: TObject); 50 procedure AGameSaveAsExecute(Sender: TObject); 50 51 procedure AGameSaveExecute(Sender: TObject); 51 52 procedure AHelpExecute(Sender: TObject); … … 245 246 procedure TCore.UpdateActions; 246 247 begin 247 Core.AGameEndTurn.Enabled := Core.Game.Running;248 248 Core.AGameEnd.Enabled := Core.Game.Running; 249 249 end; … … 276 276 procedure TCore.AGameEndTurnExecute(Sender: TObject); 277 277 begin 278 Game.NextPlayer; 279 RedrawClients; 280 UpdateActions; 278 281 279 end; 282 280 … … 314 312 end; 315 313 316 procedure TCore.AGameSave Execute(Sender: TObject);314 procedure TCore.AGameSaveAsExecute(Sender: TObject); 317 315 begin 318 316 SaveDialog1.Filter := SFileDialogFilter; … … 323 321 LastOpenedList1.AddItem(SaveDialog1.FileName); 324 322 end; 323 end; 324 325 procedure TCore.AGameSaveExecute(Sender: TObject); 326 begin 327 if FileExists(Game.FileName) then 328 Game.SaveToFile(Game.FileName) 329 else AGameSave.Execute; 325 330 end; 326 331 … … 434 439 435 440 // Create local LocalClients for human players 441 LocalClients.Clear; 436 442 for Player in Game.Players do 437 443 with Player do … … 509 515 510 516 // Create local LocalClients for human players 517 LocalClients.Clear; 511 518 for Player in Game.Players do 512 519 with Player do -
trunk/UGame.pas
r202 r203 3150 3150 repeat 3151 3151 CurrentPlayer := Players[(Players.IndexOf(CurrentPlayer) + 1) mod Players.Count]; 3152 if Assigned(FOnPlayerChange) then3153 FOnPlayerChange(Self);3154 3152 until CurrentPlayer.IsAlive; 3153 if Assigned(FOnPlayerChange) then 3154 FOnPlayerChange(Self); 3155 3155 3156 if Players.IndexOf(CurrentPlayer) < Players.IndexOf(PrevPlayer) then begin 3156 3157 Inc(TurnCounter); -
trunk/UGameClient.pas
r202 r203 6 6 7 7 uses 8 Classes, SysUtils, UGame, Forms, fgl, UGameProtocol, UGameServer ;8 Classes, SysUtils, UGame, Forms, fgl, UGameProtocol, UGameServer, UCommThread; 9 9 10 10 type … … 22 22 FOnReceive: TCommandEvent; 23 23 FOnMove: TMoveEvent; 24 FOnTurnStart: TNotifyEvent; 25 CommThread: TCommThread; 24 26 procedure SetActive(AValue: Boolean); 25 27 procedure SetControlPlayer(AValue: TPlayer); … … 28 30 procedure PlayerMove(CellFrom, CellTo: TCell; var CountOnce, CountRepeat: Integer; 29 31 Update: Boolean; var Confirm: Boolean); 32 procedure SetOnMove(AValue: TMoveEvent); 30 33 protected 31 34 procedure ReceiveCmd(Command: TCommand; DataOut, DataIn: TStream); virtual; … … 45 48 property Game: TGame read FGame write SetGame; 46 49 property Form: TForm read FForm write SetForm; 47 property OnMove: TMoveEvent read FOnMove write FOnMove;50 property OnMove: TMoveEvent read FOnMove write SetOnMove; 48 51 property OnReceive: TCommandEvent read FOnReceive write FOnReceive; 49 52 property OnChange: TNotifyEvent read FOnChange write FOnChange; 53 property OnTurnStart: TNotifyEvent read FOnTurnStart write FOnTurnStart; 50 54 property Active: Boolean read FActive write SetActive; 51 55 end; … … 113 117 end; 114 118 119 procedure TClient.SetOnMove(AValue: TMoveEvent); 120 begin 121 //if FOnMove = AValue then Exit; 122 FOnMove := AValue; 123 end; 124 115 125 procedure TClient.ReceiveCmd(Command: TCommand; DataOut, DataIn: TStream); 116 126 begin … … 120 130 procedure TClient.DoTurnStart(Sender: TObject); 121 131 begin 122 132 if Assigned(FOnTurnStart) then 133 FOnTurnStart(Self); 123 134 end; 124 135 … … 139 150 begin 140 151 if FActive = AValue then Exit; 152 if FActive then begin 153 case ConnectType of 154 ctLocal: begin 155 CommThread.Active := False; 156 CommThread.Ext.Disconnect; 157 CommThread.Pin.Disconnect; 158 end; 159 end; 160 end; 141 161 FActive := AValue; 142 162 if FActive then begin 143 163 case ConnectType of 144 164 ctLocal: if LocalServer.Active then begin 165 CommThread.Active := True; 166 CommThread.Pin.Connect(Protocol.Pin); 145 167 ServerClient := LocalServer.GetNewServerClient; 146 168 ServerClient.Player := ControlPlayer; 147 ServerClient.Protocol.Pin.Connect( Protocol.Pin);169 ServerClient.Protocol.Pin.Connect(CommThread.Ext); 148 170 end else raise Exception.Create('Local server is not active'); 149 171 //ctNetwork: ; … … 162 184 constructor TClient.Create; 163 185 begin 186 CommThread := TCommThread.Create(nil); 164 187 FControlPlayer := nil; 165 188 View := TView.Create; … … 173 196 FreeAndNil(View); 174 197 FreeAndNil(Protocol); 198 FreeAndNil(CommThread); 175 199 inherited Destroy; 176 200 end; -
trunk/UGameProtocol.pas
r202 r203 73 73 begin 74 74 Data := TVarBlockSerializer.Create; 75 Data. ReadVarList(Stream);75 Data.WriteVarList(Stream); 76 76 Data.Stream.Position := 0; 77 Command := Data.ReadVar SInt;77 Command := Data.ReadVarUInt; 78 78 try 79 79 if Command = Integer(cmdTextMessage) then begin … … 143 143 Data.WriteVarList(Stream); 144 144 Data.Stream.Position := 0; 145 Command := Data.ReadVar SInt;145 Command := Data.ReadVarUInt; 146 146 try 147 147 if Command = Integer(cmdGameStart) then begin -
trunk/UGameServer.pas
r202 r203 203 203 begin 204 204 Result := TServerClient.Create; 205 Result.Game := Game; 205 206 Clients.Add(Result); 206 207 end; -
trunk/xtactics.lpi
r202 r203 104 104 </Item7> 105 105 </RequiredPackages> 106 <Units Count="2 7">106 <Units Count="28"> 107 107 <Unit0> 108 108 <Filename Value="xtactics.lpr"/> … … 255 255 <IsPartOfProject Value="True"/> 256 256 </Unit26> 257 <Unit27> 258 <Filename Value="Packages/PinConnection/UCommThread.pas"/> 259 <IsPartOfProject Value="True"/> 260 </Unit27> 257 261 </Units> 258 262 </ProjectOptions> … … 287 291 <Linking> 288 292 <Debugging> 289 <Use HeaptrcValue="True"/>293 <UseExternalDbgSyms Value="True"/> 290 294 </Debugging> 291 295 <Options> -
trunk/xtactics.lpr
r202 r203 15 15 {$R *.res} 16 16 17 {$ IFDEF DEBUG}17 {$if declared(UseHeapTrace)} 18 18 const 19 19 HeapTraceLog = 'heaptrclog.trc'; … … 22 22 23 23 begin 24 {$ IFDEF DEBUG}24 {$if declared(UseHeapTrace)} 25 25 // Heap trace 26 26 DeleteFile(ExtractFilePath(ParamStr(0)) + HeapTraceLog);
Note:
See TracChangeset
for help on using the changeset viewer.