Changeset 98


Ignore:
Timestamp:
Sep 28, 2022, 1:45:58 PM (19 months ago)
Author:
chronos
Message:
  • Modified: Do not change view zoom if new station is already visible.
  • Fixed: Line icon normalized.
Location:
trunk
Files:
7 added
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormImages.lfm

    r97 r98  
    741741    Width = 64
    742742    Picture.Data = {
    743       1754506F727461626C654E6574776F726B47726170686963B105000089504E47
    744       0D0A1A0A0000000D49484452000000400000004008030000009DB781EC000002
    745       1C504C54450000000000000202010000000303040C0C0E000000000000000000
    746       0000000202020E0E100D0D0C0000000606060000000000000000000000000000
    747       0007070700000000000000000000000000000000000000000000000008080A00
    748       0000000000000000050505000000050506000000000000030302000000000001
    749       0000000000000000000000000000000000000000000000000000000303030606
    750       0500000000000000000000000000000000000003030300000001010100000004
    751       0404000000000000000000010101000000000000000000000000000000000000
    752       0202020101010101000000000000000000000000000000000000000000000000
    753       0000000000000000000001010102020200000000000000000000000000000000
    754       0000000000000000000000000000000000000000000000000000000000000000
    755       0000000000000000000000000000000000000000000000000000000101010000
    756       0000000000000000000000000000000000000001010100000001010100000000
    757       0000000000000000000000010101000000000000010101000000000000000000
    758       0000000000000000000101010000000202020000000101010000000000000101
    759       0100000000000000000000000000000000000000000000000000000001010100
    760       0000000000000000000000010101000000000000000000000000000000000000
    761       0101010000000000000000000000000000000000000000000000000000000000
    762       008C7B74B4000000B374524E53000101020201030405060304060708090A0B0C
    763       0D0C0E0F10111213141514161719191A1A1B1C1D1E1E1F2023272A2B2D2E3232
    764       32343A3B3D3F404245484B58595A5B5B5F6162636468686C7D83848586878889
    765       8D8E8F90909598999A9B9C9DA1A2A3A4A5A6A7A8A9AAABACAEAFB1B2B3B4B6B6
    766       B7B8B9BABBBCC0C0C1C1C2C3C4C6C7C7CACCCCCECFD0D1D2D3D3D5D5D6D6D7D8
    767       D9DBDCDDDEE1E2E3E4E5E5E9EAEBECECEDEEEFF0F2F4F4F5F6F7F8FAFBFCFDFE
    768       416DAAD00000029149444154789C636018B6405C4B4B4B0859401428204CBC7E
    769       F6C83933E7782309308600057C883780B762F3E6CDC94C08018E42A0400633F1
    770       069401D527220970140005D289378013AB01698C446A67661701792189831D0E
    771       F8415EC89196E42546BF507041D122A0FA59790850300F28B0ACAB3794930803
    772       34676FC609FAA5893160266E037A65883040692A6E03DA24883080CB2E20683A
    773       5071B7BF1F1CF83683DCEFEF6F4B6444B09502D527208B8480A29138CD208091
    774       9018C2484B48036F00F63048255237B3AE99552B507D89992902640305AACDCD
    775       74888905F996D5AB3602D5AF5F810436000536AE5A53274E8401F852623F3129
    776       5173168506C8D62C5EB80EA878ED0224B01628B06EE1923231220C60D5D0336A
    777       02AACFD34300DD54A040B9819E2A9149997D3429434AE5046491F0CDC497CA3C
    778       5EB171A062714A340244F50105A6C5C47A70106180DA0C3C65A214110668E233
    779       809894A88E272F4C24A658E70FAEAF5B02543CAF1601AAE70205E6D7D6FB1255
    780       35B10B8883AAB6140104E08B000A64090AB011A39F014BE5CA104A4234320C86
    781       94C881911B49F282A0846215C842490938108F060AE44A4B0810A35F3CADAB67
    782       2550FD920E24008AD7E59DDDF14284F5E36D1F4C22AA50A5B47DA03C19B7011D
    783       C464266E1B57CF0940C50DAE2E08500914687777B3263229B280A2311E598494
    784       BA916130A4448A0D60A6280C184D1C9DBB80EAEB1D1DE0C0BE1828D0E8E8644C
    785       8C0172ED9B3781237D131280086C6E18F0F6C144620C102F59BA18D43E58D68B
    786       04960105564C9C944C4C6E6450D0376C00AACF904100A958A040BEBC0C51FA19
    787       B0B50FC0251291BA19A89112CB81EA93908B40900124F4DA3832D7AD5E178A2C
    788       1208148826BE5E60D0B6B4B0544116D0040AA813AF9F8E00007AE473E56359C9
    789       0B0000000049454E44AE426082
     743      1754506F727461626C654E6574776F726B477261706869631705000089504E47
     744      0D0A1A0A0000000D49484452000000400000004008030000009DB781EC000001
     745      C8504C5445000000000000000000000000000000000000000000000000000000
     746      0000000000000000000000000000000000000000000000000000000000000000
     747      0000000000000000000000000000000000000000000000000000000000000000
     748      0000000000000000000000000000000000000000000000000000000000000000
     749      0000000000000000000000000000000000000000000000000000000000000000
     750      0000000000000000000000000000000000000000000000000000000000000000
     751      0000000000000000000000000000000000000000000000000000000000000000
     752      0000000000000000000000000000000000000000000000000000000000000000
     753      0000000000000000000000000000000000000000000000000000000000000000
     754      0000000000000000000000000000000000000000000000000000000000000000
     755      0000000000000000000000000000000000000000000000000000000000000000
     756      0000000000000000000000000000000000000000000000000000000000000000
     757      0000000000000000000000000000000000000000000000000000000000000000
     758      0000000000000000000000000000000000000000000000000000000000000000
     759      00000000000000000000000000B0B7026F0000009774524E5300010203050709
     760      0A0B0C0F101516171B1C1F20212224262A2B2C2E30313233353738393A3B3C3E
     761      3F404447484A4D4E505152555758595A5C5F6062636467696C6E6F7073747576
     762      7778797A7D7F8082838485898B8C8D8F909293969798999A9E9FA1A3A4A6A7A9
     763      AAACAFB0B2B4B5BBBEBFC0C4CCCDCED0D1D2D3D4D6D8DADBDCDDDEDFE0E1E2E3
     764      E5E6E7E8E9EBEEF0F5F6F7F8F9FAFCFD98502E3A0000026749444154789CED95
     765      E757D44014C5775910B08115BB2062C52E10C54244AC2BA2C2AA5888622116AC
     766      B1975D2BF682BBEFDFF5DDE19CDD642099974FFA81FB25FB6EEEFD9DE4CC6C26
     767      9198D4FFABE98EE3D416A75EC7591B13D0484425C063A21331012D0CA8284E77
     768      8906E3B4BFD0C45A2AECCF0DE9D30E2160FB58FCF738405F8CB718211A2A4D07
     769      B83D33463B91A82C109D2B8DED0C688C0558C08DEED2B899C73671B9DAF3BC97
     770      DCF8E815F58AC70F7C5D2602AC085B04A23D22C0EE70C0791160A7EBBA9F393D
     771      E4280DF27893C751BE1E1701A087DC58581A937F88F215E1F1F1FAAA2DFC279E
     772      E7C5E85771BE90F2194FD890FEA1E75B96B51F3B39EDD35B362EF28D0601A027
     773      7C11886E090037A200EF04806C14A030D5D89F92CDE5723F39FB2DE71356258F
     774      1FC26FCA33CE77F90D0B80725919FAC1F976BFB101CF3F4BDCAF417C8BDF6982
     775      D32406AC427C8DDFA983D32AE9263B6CDBBE8478AFEDD331382E7E551A0073A2
     776      1611AA3700369A00BB0C80A326C01903E0BA0970CF0018E6DDF606C1EF770252
     777      A7DD7BBEE9190090DA06C3416F00DE124119C2D14E5782DE29789B84805684CF
     778      06BDC3F0F6090147104E073DF5ADCF08011710DE1BF4B6C273CDDDBAC5ACFB08
     779      F7AC0EA813DE73DC5D14D52FFF65DA06AC19510F20E8D3BA08C03609E06004A0
     780      5B02B81A01702580171180D71240BE3AB45FD697613D402A676B7A0A7704F733
     781      35118F005D43F4B6EE5E869B3554C7F408D101DD3D0D77B44CD04FE250A093BA
     782      9D56EF5F3B5143D36C95ECD2ED0E65AF1400D6ABA4A5DB6DCA6E11006C956CD6
     783      ED66651F1200FA5572B96E3728BB5F00A89A06A5743BA56CD3B934A97FA3BFA3
     784      2E3D9507DF5A8F0000000049454E44AE426082
    790785    }
    791786    Proportional = True
  • trunk/UControls.pas

    r96 r98  
    5656procedure TLabel.Paint;
    5757begin
    58   if Assigned(Canvas) then
     58  if not Assigned(Canvas) then Exit;
    5959  with Canvas do begin
    6060    TextOut(Bounds.Left, Bounds.Top, Text);
     
    111111procedure TImage.Paint;
    112112begin
     113  if not Assigned(Canvas) then Exit;
    113114  if Canvas.Brush.Color = clNone then Canvas.Brush.Style := bsClear
    114115    else Canvas.Brush.Style := bsSolid;
  • trunk/UEngine.pas

    r97 r98  
    10321032{ TEngine }
    10331033
     1034// Need to see all stations on screen
    10341035procedure TEngine.ResizeView;
    10351036var
    10361037  NewPoint: TPoint;
    1037 begin
    1038   // Need to see all stations on screen
    1039   View.SourceRect := RectEnlarge(Stations.GetRect, 100);
    1040 
     1038  Intersected: TRect;
     1039  NewView: TView;
     1040begin
     1041  NewView := TView.Create;
     1042  NewView.Assign(View);
     1043
     1044  NewView.SourceRect := RectEnlarge(Stations.GetRect, 100);
    10411045  NewPoint := Point(
    1042     Trunc((View.SourceRect.Left + (View.SourceRect.Right - View.SourceRect.Left) / 2) -
    1043     (View.DestRect.Left + (View.DestRect.Right - View.DestRect.Left) / 2 / View.Zoom)),
    1044     Trunc((View.SourceRect.Top + (View.SourceRect.Bottom - View.SourceRect.Top) / 2) -
    1045     (View.DestRect.Top + (View.DestRect.Bottom - View.DestRect.Top) / 2 / View.Zoom)));
    1046   View.SourceRect := Bounds(NewPoint.X, NewPoint.Y, Trunc((View.DestRect.Right - View.DestRect.Left) / View.Zoom),
    1047     Trunc((View.DestRect.Bottom - View.DestRect.Top) / View.Zoom));
     1046    Trunc((NewView.SourceRect.Left + (NewView.SourceRect.Right - NewView.SourceRect.Left) / 2) -
     1047    (NewView.DestRect.Left + (NewView.DestRect.Right - NewView.DestRect.Left) / 2 / NewView.Zoom)),
     1048    Trunc((NewView.SourceRect.Top + (NewView.SourceRect.Bottom - NewView.SourceRect.Top) / 2) -
     1049    (NewView.DestRect.Top + (NewView.DestRect.Bottom - NewView.DestRect.Top) / 2 / NewView.Zoom)));
     1050  NewView.SourceRect := Bounds(NewPoint.X, NewPoint.Y, Trunc((NewView.DestRect.Right - NewView.DestRect.Left) / NewView.Zoom),
     1051    Trunc((NewView.DestRect.Bottom - NewView.DestRect.Top) / NewView.Zoom));
     1052
     1053  Intersected := NewView.SourceRect;
     1054  Intersected.Union(View.SourceRect);
     1055  if Intersected = View.SourceRect then Exit;
     1056
     1057  View.Assign(NewView);
     1058
     1059  NewView.Free;
    10481060end;
    10491061
     
    25602572    end;
    25612573
    2562     // Add new stations
     2574    // Add new station
    25632575    if (Time - LastNewStationTime) > NewStationPeriod then begin
    25642576      LastNewStationTime := Time;
     
    28602872  KeyF4 = 115;
    28612873  KeyF5 = 116;
     2874  KeyF6 = 117;
    28622875begin
    28632876  if Key = KeyEsc then begin
     
    28932906      Redraw;
    28942907    end;
     2908  end else
     2909  if Key = KeyF6 then begin
     2910    if State = gsRunning then begin
     2911      Stations.AddNew;
     2912      ResizeView;
     2913      Redraw;
     2914    end;
    28952915  end;
    28962916  {$ENDIF}
     
    29102930  Lines.Clear;
    29112931  Stations.Clear;
     2932  View.SourceRect := Bounds(0, 0, 0, 0);
    29122933end;
    29132934
  • trunk/UView.pas

    r91 r98  
    1818    procedure SetZoom(AValue: Double);
    1919  public
     20    procedure Assign(Source: TView);
    2021    function PointDestToSrc(Pos: TPoint): TPoint;
    2122    function PointSrcToDest(Pos: TPoint): TPoint;
     
    7677end;
    7778
     79procedure TView.Assign(Source: TView);
     80begin
     81  FDestRect := Source.FDestRect;
     82  FSourceRect := Source.FSourceRect;
     83  FZoom := Source.FZoom;
     84end;
     85
    7886function TView.PointDestToSrc(Pos: TPoint): TPoint;
    7987begin
Note: See TracChangeset for help on using the changeset viewer.