- Timestamp:
- Mar 6, 2011, 12:13:35 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UCore.pas
r2 r3 1 1 unit UCore; 2 2 3 {$mode objfpc}{$H+}3 {$mode Delphi}{$H+} 4 4 5 5 interface 6 6 7 7 uses 8 Dialogs, Classes, SysUtils, Contnrs, Graphics, SpecializedMatrix ;8 Dialogs, Classes, SysUtils, Contnrs, Graphics, SpecializedMatrix, SpecializedList; 9 9 10 10 type 11 11 TEngine = class; 12 12 13 TSurfaceMatter = (smNothing, smDirt1, smDirt2, smRock1, smRock2, smHouse1, smHouse2); 13 TSurfaceMatter = (smNothing, smDirt1, smDirt2, smRock, 14 smPlayer1H, smPlayer1L, smPlayer2H, smPlayer2L, smCannon, smBullet); 14 15 15 16 TPlayerKeys = record … … 21 22 end; 22 23 24 { TTank } 25 26 TTank = class 27 Image: TMatrixByte; 28 Mask: TMatrixByte; 29 constructor Create; 30 destructor Destroy; override; 31 end; 32 23 33 { TPlayer } 24 34 25 35 TPlayer = class 36 private 37 function ShowTankProc(Item1, Item2: Byte): Byte; 38 function HideTankProc(Item1, Item2: Byte): Byte; 39 public 40 Id: Integer; 26 41 Engine: TEngine; 27 Color: TColor;28 42 Position: TPoint; 43 Direction: Integer; 29 44 ScreenFrame: TRect; 30 45 Name: string; 31 46 Keys: TPlayerKeys; 47 Tanks: TListObject; 32 48 procedure Control; 33 49 procedure Paint; 50 procedure PlaceHouse; 51 function CheckColision: Boolean; 52 procedure ShowTank; 53 procedure HideTank; 54 procedure InitTanks; 55 constructor Create; 56 destructor Destroy; override; 34 57 end; 35 58 … … 54 77 private 55 78 FBitmap: TBitmap; 79 FRedrawPending: Boolean; 56 80 function GetPlayerCount: Integer; 57 81 procedure SetBitmap(const AValue: TBitmap); 58 82 procedure SetPlayerCount(const AValue: Integer); 83 procedure Redraw; 59 84 public 60 85 KeyState: array[0..High(Word)] of Boolean; … … 64 89 destructor Destroy; override; 65 90 procedure ResizePlayerFrames; 66 procedure Paint;91 procedure Tick; 67 92 property PlayerCount: Integer read GetPlayerCount write SetPlayerCount; 68 93 property Bitmap: TBitmap read FBitmap write SetBitmap; 94 procedure NewGame; 69 95 end; 70 96 71 97 const 72 SurfaceMatterColors: array[TSurfaceMatter] of TColor = (clBlack, $0756b0, $2170c3, clGray, clGray + $808080, clGreen, clBlue); 98 SurfaceMatterColors: array[TSurfaceMatter] of TColor = (clBlack, $0756b0, 99 $2170c3, TColor($9a9a9a), TColor($00ff00), TColor($00a000), 100 TColor($ff2c2c), TColor($b60000), clYellow, clRed); 73 101 74 102 var … … 76 104 77 105 implementation 106 107 { TTank } 108 109 constructor TTank.Create; 110 begin 111 Mask := TMatrixByte.Create; 112 Image := TMatrixByte.Create; 113 end; 114 115 destructor TTank.Destroy; 116 begin 117 Mask.Free; 118 Image.Free; 119 inherited Destroy; 120 end; 78 121 79 122 { TWorld } … … 97 140 for X := 0 to Surface.Count.X - 1 do begin 98 141 if Random < 0.5 then 99 Surface [Y, X] := Byte(smDirt1) else100 Surface [Y, X] := Byte(smDirt2);142 Surface.ItemsXY[Y, X] := Byte(smDirt1) else 143 Surface.ItemsXY[Y, X] := Byte(smDirt2); 101 144 end; 102 145 end; … … 107 150 begin 108 151 Surface := TMatrixByte.Create; 109 NewSize.X := 5000;110 NewSize.Y := 500;152 NewSize.X := 100; 153 NewSize.Y := 100; 111 154 Size := NewSize; 112 155 end; … … 121 164 122 165 procedure TPlayer.Control; 123 begin 124 if Engine.KeyState[Ord(Keys.Up)] then Position.Y := Position.Y + 1; 125 if Engine.KeyState[Ord(Keys.Down)] then Position.Y := Position.Y - 1; 126 if Engine.KeyState[Ord(Keys.Right)] then Position.X := Position.X + 1; 127 if Engine.KeyState[Ord(Keys.Left)] then Position.X := Position.X - 1; 166 var 167 NewPosition: TPoint; 168 NewDirection: Integer; 169 Delta: TPoint; 170 begin 171 Delta.X := 0; 172 Delta.Y := 0; 173 if Engine.KeyState[Ord(Keys.Up)] then Delta.Y := Delta.Y + 1; 174 if Engine.KeyState[Ord(Keys.Down)] then Delta.Y := Delta.Y - 1; 175 if Engine.KeyState[Ord(Keys.Right)] then Delta.X := Delta.X + 1; 176 if Engine.KeyState[Ord(Keys.Left)] then Delta.X := Delta.X - 1; 177 178 NewDirection := Direction; 179 if (Delta.X <> 0) or (Delta.Y <> 0) then begin 180 if (Delta.X = 0) and (Delta.Y = -1) then NewDirection := 0 181 else if (Delta.X = 1) and (Delta.Y = -1) then NewDirection := 1 182 else if (Delta.X = 1) and (Delta.Y = 0) then NewDirection := 2 183 else if (Delta.X = 1) and (Delta.Y = 1) then NewDirection := 3 184 else if (Delta.X = 0) and (Delta.Y = 1) then NewDirection := 4 185 else if (Delta.X = -1) and (Delta.Y = 1) then NewDirection := 5 186 else if (Delta.X = -1) and (Delta.Y = 0) then NewDirection := 6 187 else if (Delta.X = -1) and (Delta.Y = -1) then NewDirection := 7; 188 end; 189 190 NewPosition := Point(Position.X + Delta.X, Position.Y + Delta.Y); 191 if CheckColision then begin 192 HideTank; 193 Position := NewPosition; 194 Direction := NewDirection; 195 ShowTank; 196 Engine.Redraw; 197 end; 128 198 end; 129 199 … … 136 206 Rectangle(ScreenFrame); 137 207 //FillRect(ScreenFrame); 208 138 209 139 210 with Engine.World do … … 143 214 YY := Y - ScreenFrame.Top - ((ScreenFrame.Bottom - ScreenFrame.Top) div 2) + Position.Y; 144 215 if (YY >= 0) and (YY < Surface.Count.Y) and (XX >= 0) and (XX < Surface.Count.X) then 145 Pixels[X, Y] := SurfaceMatterColors[TSurfaceMatter(Surface [YY, XX])];216 Pixels[X, Y] := SurfaceMatterColors[TSurfaceMatter(Surface.ItemsXY[YY, XX])]; 146 217 end; 218 147 219 (*CopyRect(ScreenFrame, Engine.World.Surface.Canvas, 148 220 Rect( … … 157 229 end; 158 230 231 procedure TPlayer.PlaceHouse; 232 const 233 HouseSize = 30; 234 DoorSize = 8; 235 var 236 X, Y: Integer; 237 Matter: Byte; 238 begin 239 for Y := 0 to HouseSize - 1 do 240 for X := 0 to HouseSize - 1 do begin 241 if ((Y = 0) or (Y = (HouseSize - 1)) or (X = 0) or (X = (HouseSize - 1))) and 242 not (((Y = 0) or (Y = (HouseSize - 1))) and (X > ((HouseSize - DoorSize) div 2)) and 243 (X < ((HouseSize - 1 + DoorSize) div 2))) 244 then Matter := Byte(smPlayer1H) + Id * 2 245 else Matter := Byte(smNothing); 246 Engine.World.Surface.ItemsXY[Position.Y - HouseSize div 2 + Y, Position.X - HouseSize div 2 + X] := Matter; 247 end; 248 end; 249 250 function TPlayer.CheckColision: Boolean; 251 begin 252 253 end; 254 255 function TPlayer.ShowTankProc(Item1, Item2: Byte): Byte; 256 begin 257 if Item2 > 0 then Result := Item2 else Result := Item1; 258 end; 259 260 procedure TPlayer.ShowTank; 261 begin 262 with Engine.World do begin 263 Surface.Merge(TMatrixByte.Point(Position.X, Position.Y), TTank(Tanks[Direction]).Image, ShowTankProc); 264 end; 265 end; 266 267 function TPlayer.HideTankProc(Item1, Item2: Byte): Byte; 268 begin 269 if Item2 > 0 then Result := 0 else Result := Item1; 270 end; 271 272 procedure TPlayer.HideTank; 273 begin 274 with Engine.World do begin 275 Surface.Merge(TMatrixByte.Point(Position.X, Position.Y), TTank(Tanks[Direction]).Image, HideTankProc); 276 end; 277 end; 278 279 procedure TPlayer.InitTanks; 280 var 281 NewTank: TTank; 282 I: Integer; 283 X, Y: Integer; 284 begin 285 Tanks.Clear; 286 287 NewTank := TTank.Create; 288 with NewTank do begin 289 Image.Count := TMatrixByte.Point(7, 7); 290 for I := 0 to 3 do 291 Image[I, 3] := Byte(smCannon); 292 for I := 1 to 6 do begin 293 Image[I, 1] := Byte(smPlayer1H) + Id * 2; 294 Image[I, 5] := Byte(smPlayer1H) + Id * 2; 295 end; 296 for I := 2 to 5 do begin 297 Image[I, 2] := Byte(smPlayer1H) + Id * 2 + 1; 298 Image[I, 4] := Byte(smPlayer1H) + Id * 2 + 1; 299 end; 300 Image[4, 3] := Byte(smPlayer1H) + Id * 2 + 1; 301 Image[5, 3] := Byte(smPlayer1H) + Id * 2 + 1; 302 end; 303 Tanks.Add(NewTank); 304 305 NewTank := TTank.Create; 306 with NewTank do begin 307 Image.Count := TMatrixByte.Point(7, 7); 308 for I := 0 to 2 do 309 Image[3 - I, 3 + I] := Byte(smCannon); 310 for I := 0 to 3 do begin 311 Image[3 - I, I] := Byte(smPlayer1H) + Id * 2; 312 Image[6 - I, 3 + I] := Byte(smPlayer1H) + Id * 2; 313 end; 314 for I := 0 to 2 do begin 315 Image[3 - I, 1 + I] := Byte(smPlayer1H) + Id * 2 + 1; 316 Image[5 - I, 3 + I] := Byte(smPlayer1H) + Id * 2 + 1; 317 end; 318 Image[2, 3] := Byte(smPlayer1H) + Id * 2 + 1; 319 Image[3, 2] := Byte(smPlayer1H) + Id * 2 + 1; 320 Image[4, 2] := Byte(smPlayer1H) + Id * 2 + 1; 321 Image[4, 3] := Byte(smPlayer1H) + Id * 2 + 1; 322 Image[3, 4] := Byte(smPlayer1H) + Id * 2 + 1; 323 end; 324 Tanks.Add(NewTank); 325 326 NewTank := TTank.Create; 327 NewTank.Image.Assign(TTank(Tanks[0]).Image); 328 NewTank.Image.Reverse; 329 NewTank.Image.ReverseHorizontal; 330 Tanks.Add(NewTank); 331 332 NewTank := TTank.Create; 333 NewTank.Image.Assign(TTank(Tanks[1]).Image); 334 NewTank.Image.ReverseVertical; 335 Tanks.Add(NewTank); 336 337 NewTank := TTank.Create; 338 NewTank.Image.Assign(TTank(Tanks[0]).Image); 339 NewTank.Image.ReverseVertical; 340 Tanks.Add(NewTank); 341 342 NewTank := TTank.Create; 343 NewTank.Image.Assign(TTank(Tanks[1]).Image); 344 NewTank.Image.ReverseVertical; 345 NewTank.Image.ReverseHorizontal; 346 Tanks.Add(NewTank); 347 348 NewTank := TTank.Create; 349 NewTank.Image.Assign(TTank(Tanks[0]).Image); 350 NewTank.Image.Reverse; 351 Tanks.Add(NewTank); 352 353 NewTank := TTank.Create; 354 NewTank.Image.Assign(TTank(Tanks[1]).Image); 355 NewTank.Image.ReverseHorizontal; 356 Tanks.Add(NewTank); 357 358 for I := 0 to Tanks.Count - 1 do 359 with TTank(Tanks[I]) do begin 360 Mask.Assign(Image); 361 for Y := 0 to Mask.Count.Y - 1 do 362 for X := 0 to Mask.Count.X - 1 do 363 if Mask.ItemsXY[X, Y] > 0 then Mask.ItemsXY[X, Y] := 1; 364 end; 365 end; 366 367 constructor TPlayer.Create; 368 begin 369 Tanks := TListObject.Create; 370 end; 371 372 destructor TPlayer.Destroy; 373 begin 374 Tanks.Free; 375 inherited Destroy; 376 end; 377 159 378 { TEngine } 160 379 … … 179 398 NewPlayer := TPlayer.Create; 180 399 NewPlayer.Engine := Self; 400 NewPlayer.Id := I; 181 401 NewPlayer.Name := 'Player ' + IntToStr(I); 402 NewPlayer.InitTanks; 182 403 Players.Add(NewPlayer); 183 404 end; … … 188 409 end; 189 410 ResizePlayerFrames; 411 end; 412 413 procedure TEngine.Redraw; 414 begin 415 FRedrawPending := True; 190 416 end; 191 417 … … 224 450 end; 225 451 226 procedure TEngine. Paint;452 procedure TEngine.Tick; 227 453 var 228 454 I: Integer; 229 455 begin 230 if Assigned(Bitmap) then begin 231 Bitmap.Canvas.FillRect(0, 0, Bitmap.Width, Bitmap.Height); 232 for I := 0 to Players.Count - 1 do begin 233 TPlayer(Players[I]).Control; 234 TPlayer(Players[I]).Paint; 235 end; 456 for I := 0 to Players.Count - 1 do begin 457 TPlayer(Players[I]).Control; 458 end; 459 460 if FRedrawPending then begin 461 if Assigned(Bitmap) then begin 462 Bitmap.Canvas.FillRect(0, 0, Bitmap.Width, Bitmap.Height); 463 for I := 0 to Players.Count - 1 do begin 464 TPlayer(Players[I]).Control; 465 TPlayer(Players[I]).Paint; 466 end; 467 end; 468 FRedrawPending := False; 469 end; 470 end; 471 472 procedure TEngine.NewGame; 473 var 474 I: Integer; 475 I2: Integer; 476 begin 477 World.Generate; 478 479 for I := 0 to Players.Count - 1 do 480 with TPlayer(Players[I]) do 481 begin 482 // Reset position 483 Position := Point(25 + Random(World.Surface.Count.X - 50), 484 25 + Random(World.Surface.Count.Y - 50)); 485 486 PlaceHouse; 236 487 end; 237 488 end; -
trunk/UMainForm.pas
r2 r3 47 47 try 48 48 Timer1.Enabled := False; 49 Engine. Paint;49 Engine.Tick; 50 50 StatusBar1.Panels[1].Text := IntToStr(TPlayer(Engine.Players[0]).Position.X) + ', ' + 51 IntToStr(TPlayer(Engine.Players[0]).Position.Y); 51 IntToStr(TPlayer(Engine.Players[0]).Position.Y) + ' ' + 52 IntToStr(TPlayer(Engine.Players[0]).Direction); 52 53 finally 53 54 Timer1.Enabled := True; … … 62 63 PlayerCount := 2; 63 64 with TPlayer(Players[0]) do begin 64 Position := Point(25 + Random(World.Surface.Count.X - 50),65 25 + Random(World.Surface.Count.Y - 50));66 Color := TColor($00f805);67 65 Keys.Left := 65; 68 66 Keys.Down := 87; … … 72 70 end; 73 71 with TPlayer(Players[1]) do begin 74 Position := Point(25 + Random(World.Surface.Count.X - 50),75 25 + Random(World.Surface.Count.Y - 50));76 Color := TColor($00f805);77 72 Keys.Left := 37; 78 73 Keys.Down := 38; … … 82 77 end; 83 78 end; 79 Engine.NewGame; 84 80 end; 85 81 … … 111 107 procedure TMainForm.MenuItem3Click(Sender: TObject); 112 108 begin 113 109 Engine.NewGame; 114 110 end; 115 111 -
trunk/tunneler.lpi
r2 r3 38 38 </Item2> 39 39 </RequiredPackages> 40 <Units Count="1 5">40 <Units Count="18"> 41 41 <Unit0> 42 42 <Filename Value="tunneler.lpr"/> 43 43 <IsPartOfProject Value="True"/> 44 44 <UnitName Value="tunneler"/> 45 <EditorIndex Value=" 1"/>45 <EditorIndex Value="0"/> 46 46 <WindowIndex Value="0"/> 47 47 <TopLine Value="1"/> 48 48 <CursorPos X="28" Y="11"/> 49 <UsageCount Value="3 0"/>49 <UsageCount Value="36"/> 50 50 <Loaded Value="True"/> 51 51 </Unit0> … … 56 56 <ResourceBaseClass Value="Form"/> 57 57 <UnitName Value="UMainForm"/> 58 <EditorIndex Value=" 0"/>59 <WindowIndex Value="0"/> 60 <TopLine Value=" 56"/>61 <CursorPos X="1 9" Y="63"/>62 <UsageCount Value="3 0"/>58 <EditorIndex Value="2"/> 59 <WindowIndex Value="0"/> 60 <TopLine Value="11"/> 61 <CursorPos X="1" Y="72"/> 62 <UsageCount Value="36"/> 63 63 <Loaded Value="True"/> 64 64 <LoadedDesigner Value="True"/> … … 69 69 <UnitName Value="UCore"/> 70 70 <IsVisibleTab Value="True"/> 71 <EditorIndex Value=" 2"/>72 <WindowIndex Value="0"/> 73 <TopLine Value=" 125"/>74 <CursorPos X=" 5" Y="137"/>75 <UsageCount Value="3 0"/>71 <EditorIndex Value="1"/> 72 <WindowIndex Value="0"/> 73 <TopLine Value="451"/> 74 <CursorPos X="6" Y="468"/> 75 <UsageCount Value="36"/> 76 76 <Loaded Value="True"/> 77 77 </Unit2> … … 103 103 <Filename Value="/usr/share/fpcsrc/2.4.0/rtl/objpas/classes/classesh.inc"/> 104 104 <WindowIndex Value="0"/> 105 <TopLine Value=" 1772"/>106 <CursorPos X=" 10" Y="1788"/>105 <TopLine Value="252"/> 106 <CursorPos X="20" Y="271"/> 107 107 <UsageCount Value="10"/> 108 108 </Unit6> … … 139 139 <Unit11> 140 140 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 141 <EditorIndex Value=" 5"/>142 <WindowIndex Value="0"/> 143 <TopLine Value="1 07"/>144 <CursorPos X="1 " Y="113"/>145 <UsageCount Value="1 1"/>141 <EditorIndex Value="4"/> 142 <WindowIndex Value="0"/> 143 <TopLine Value="1"/> 144 <CursorPos X="16" Y="3"/> 145 <UsageCount Value="13"/> 146 146 <Loaded Value="True"/> 147 147 </Unit11> … … 149 149 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Specialized/SpecializedMatrix.pas"/> 150 150 <UnitName Value="SpecializedMatrix"/> 151 <WindowIndex Value="0"/> 152 <TopLine Value="16"/> 153 <CursorPos X="22" Y="32"/> 154 <UsageCount Value="10"/> 151 <EditorIndex Value="5"/> 152 <WindowIndex Value="0"/> 153 <TopLine Value="69"/> 154 <CursorPos X="40" Y="98"/> 155 <UsageCount Value="11"/> 156 <Loaded Value="True"/> 155 157 </Unit12> 156 158 <Unit13> 157 159 <Filename Value="../../FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/classes/classesh.inc"/> 158 <EditorIndex Value="3"/>159 160 <WindowIndex Value="0"/> 160 161 <TopLine Value="16"/> 161 162 <CursorPos X="19" Y="32"/> 162 <UsageCount Value="10"/> 163 <Loaded Value="True"/> 163 <UsageCount Value="13"/> 164 164 </Unit13> 165 165 <Unit14> 166 166 <Filename Value="../../FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/types.pp"/> 167 167 <UnitName Value="types"/> 168 <EditorIndex Value=" 4"/>168 <EditorIndex Value="3"/> 169 169 <WindowIndex Value="0"/> 170 170 <TopLine Value="54"/> 171 171 <CursorPos X="3" Y="70"/> 172 <UsageCount Value="1 0"/>172 <UsageCount Value="13"/> 173 173 <Loaded Value="True"/> 174 174 </Unit14> 175 <Unit15> 176 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericList.inc"/> 177 <EditorIndex Value="6"/> 178 <WindowIndex Value="0"/> 179 <TopLine Value="107"/> 180 <CursorPos X="1" Y="126"/> 181 <UsageCount Value="11"/> 182 <Loaded Value="True"/> 183 </Unit15> 184 <Unit16> 185 <Filename Value="/usr/share/fpcsrc/2.4.0/rtl/objpas/classes/lists.inc"/> 186 <WindowIndex Value="0"/> 187 <TopLine Value="783"/> 188 <CursorPos X="3" Y="785"/> 189 <UsageCount Value="10"/> 190 </Unit16> 191 <Unit17> 192 <Filename Value="/usr/share/fpcsrc/2.4.0/rtl/inc/systemh.inc"/> 193 <WindowIndex Value="0"/> 194 <TopLine Value="830"/> 195 <CursorPos X="11" Y="847"/> 196 <UsageCount Value="10"/> 197 </Unit17> 175 198 </Units> 176 199 <JumpHistory Count="30" HistoryIndex="29"> 177 200 <Position1> 178 <Filename Value=" UCore.pas"/>179 <Caret Line=" 105" Column="16" TopLine="88"/>201 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 202 <Caret Line="415" Column="1" TopLine="391"/> 180 203 </Position1> 181 204 <Position2> 182 <Filename Value=" UCore.pas"/>183 <Caret Line=" 108" Column="18" TopLine="88"/>205 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 206 <Caret Line="410" Column="1" TopLine="391"/> 184 207 </Position2> 185 208 <Position3> 186 <Filename Value=" UCore.pas"/>187 <Caret Line=" 103" Column="23" TopLine="87"/>209 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 210 <Caret Line="411" Column="1" TopLine="391"/> 188 211 </Position3> 189 212 <Position4> 190 <Filename Value=" UCore.pas"/>191 <Caret Line=" 72" Column="39" TopLine="56"/>213 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 214 <Caret Line="412" Column="1" TopLine="391"/> 192 215 </Position4> 193 216 <Position5> 194 <Filename Value=" UCore.pas"/>195 <Caret Line=" 13" Column="86" TopLine="1"/>217 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 218 <Caret Line="413" Column="1" TopLine="391"/> 196 219 </Position5> 197 220 <Position6> 198 <Filename Value=" UCore.pas"/>199 <Caret Line=" 72" Column="127" TopLine="56"/>221 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 222 <Caret Line="412" Column="1" TopLine="391"/> 200 223 </Position6> 201 224 <Position7> 202 <Filename Value=" UCore.pas"/>203 <Caret Line=" 141" Column="23" TopLine="125"/>225 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 226 <Caret Line="413" Column="1" TopLine="391"/> 204 227 </Position7> 205 228 <Position8> 206 <Filename Value=" UMainForm.pas"/>207 <Caret Line="4 7" Column="7" TopLine="41"/>229 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 230 <Caret Line="412" Column="1" TopLine="391"/> 208 231 </Position8> 209 232 <Position9> 210 <Filename Value=" UMainForm.pas"/>211 <Caret Line=" 59" Column="58" TopLine="43"/>233 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 234 <Caret Line="413" Column="1" TopLine="391"/> 212 235 </Position9> 213 236 <Position10> 214 <Filename Value=" UMainForm.pas"/>215 <Caret Line=" 60" Column="42" TopLine="44"/>237 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 238 <Caret Line="412" Column="1" TopLine="391"/> 216 239 </Position10> 217 240 <Position11> 218 <Filename Value=" UMainForm.pas"/>219 <Caret Line=" 69" Column="58" TopLine="53"/>241 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 242 <Caret Line="413" Column="1" TopLine="391"/> 220 243 </Position11> 221 244 <Position12> 222 <Filename Value=" UCore.pas"/>223 <Caret Line=" 141" Column="100" TopLine="125"/>245 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 246 <Caret Line="415" Column="1" TopLine="391"/> 224 247 </Position12> 225 248 <Position13> 226 <Filename Value=" UCore.pas"/>227 <Caret Line=" 108" Column="13" TopLine="85"/>249 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 250 <Caret Line="410" Column="1" TopLine="391"/> 228 251 </Position13> 229 252 <Position14> 230 <Filename Value=" UCore.pas"/>231 <Caret Line=" 111" Column="1" TopLine="85"/>253 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 254 <Caret Line="411" Column="1" TopLine="391"/> 232 255 </Position14> 233 256 <Position15> 234 <Filename Value=" UCore.pas"/>235 <Caret Line=" 88" Column="1" TopLine="82"/>257 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 258 <Caret Line="412" Column="1" TopLine="391"/> 236 259 </Position15> 237 260 <Position16> 238 261 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 239 <Caret Line=" 123" Column="1" TopLine="97"/>262 <Caret Line="413" Column="1" TopLine="391"/> 240 263 </Position16> 241 264 <Position17> 242 265 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 243 <Caret Line=" 98" Column="1" TopLine="92"/>266 <Caret Line="411" Column="22" TopLine="394"/> 244 267 </Position17> 245 268 <Position18> 246 <Filename Value=" ../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>247 <Caret Line=" 107" Column="1" TopLine="92"/>269 <Filename Value="UMainForm.pas"/> 270 <Caret Line="70" Column="7" TopLine="41"/> 248 271 </Position18> 249 272 <Position19> 250 <Filename Value=" ../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>251 <Caret Line=" 109" Column="1" TopLine="92"/>273 <Filename Value="UCore.pas"/> 274 <Caret Line="50" Column="17" TopLine="34"/> 252 275 </Position19> 253 276 <Position20> 254 <Filename Value=" ../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>255 <Caret Line=" 124" Column="1" TopLine="108"/>277 <Filename Value="UCore.pas"/> 278 <Caret Line="328" Column="6" TopLine="314"/> 256 279 </Position20> 257 280 <Position21> 258 281 <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/> 259 <Caret Line="1 25" Column="1" TopLine="108"/>282 <Caret Line="116" Column="1" TopLine="91"/> 260 283 </Position21> 261 284 <Position22> 262 285 <Filename Value="UCore.pas"/> 263 <Caret Line=" 89" Column="1" TopLine="82"/>286 <Caret Line="186" Column="9" TopLine="159"/> 264 287 </Position22> 265 288 <Position23> 266 289 <Filename Value="UCore.pas"/> 267 <Caret Line=" 90" Column="1" TopLine="82"/>290 <Caret Line="48" Column="15" TopLine="31"/> 268 291 </Position23> 269 292 <Position24> 270 293 <Filename Value="UCore.pas"/> 271 <Caret Line=" 112" Column="1" TopLine="86"/>294 <Caret Line="39" Column="5" TopLine="20"/> 272 295 </Position24> 273 296 <Position25> 274 297 <Filename Value="UCore.pas"/> 275 <Caret Line="2 11" Column="1" TopLine="195"/>298 <Caret Line="258" Column="1" TopLine="1"/> 276 299 </Position25> 277 300 <Position26> 278 301 <Filename Value="UCore.pas"/> 279 <Caret Line="2 12" Column="1" TopLine="195"/>302 <Caret Line="241" Column="41" TopLine="228"/> 280 303 </Position26> 281 304 <Position27> 282 <Filename Value=" ../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>283 <Caret Line=" 113" Column="1" TopLine="107"/>305 <Filename Value="UCore.pas"/> 306 <Caret Line="89" Column="17" TopLine="66"/> 284 307 </Position27> 285 308 <Position28> 286 309 <Filename Value="UCore.pas"/> 287 <Caret Line=" 141" Column="12" TopLine="125"/>310 <Caret Line="83" Column="15" TopLine="72"/> 288 311 </Position28> 289 312 <Position29> 290 313 <Filename Value="UCore.pas"/> 291 <Caret Line="1 43" Column="82" TopLine="125"/>314 <Caret Line="196" Column="12" TopLine="165"/> 292 315 </Position29> 293 316 <Position30> 294 317 <Filename Value="UCore.pas"/> 295 <Caret Line=" 140" Column="30" TopLine="124"/>318 <Caret Line="460" Column="7" TopLine="443"/> 296 319 </Position30> 297 320 </JumpHistory>
Note:
See TracChangeset
for help on using the changeset viewer.