Yes ! I found it's the problem ! I build the diesel rail so I can't add new engine. Because when I tried to build new electric track, I can buy new engine....
However, when I tried to upgrade the track, it also shows this track cannot be upgrade.
So maybe I need to save some money and rebuild new rail..
Thank you for your support.
Assuming you're not using any NewGRFs, most likely the rail technology you are using is no longer producing engines. For example, you built standard steam/diesel rail and you're late enough into a game that those are stopped being made. Upgrading your track and depot to the next level of technology (for example, upgrading from rail to electric rail) will get you new engines. Steam and diesel can run on electric track, but this won't work when upgrading to monorail or maglev.
Another option is to go into the game Settings menu and enable the setting "Vehicles never expire" (may need to enable Advanced or Expert settings first), and then open the console (~ key), type "resetengines", then ~ to close the console again. This will re-enable all the old engines for the rail type.