Well, when modifying any of these, it should have asked you for a transport request, if the object has been created in a transportable package. If not, you would need to change the package for the object to one which is transportable.
In SE51, enter the program and screen number, then choose from the menu, "Go To" -> "Object Directory Entry", in the dialog, change the package to a valid transportable package, it will then ask you for a transport request.
You can do the same in SE41.
If you had just created the program inself, and assigned to the request, then you may not see these other objects on that same request explicitly, but they would be transported along with the program anyway. This is similar behavior with function modules and function groups. If you had create the function group, and then the function module, you would only see the function group on the request, but the FM would be transported too.
Again, if the program is on the request, this will be good enough. Only when you modify the screen will it be added to a request by itself, same with gui status, and gui title. So if you release the request that your program is on, and go and modify just the screen, it will ask for another request, and the screen will show on the request in SE10.
Just to confirm - You're saying that the GUI status, screen and titlebar will be transported because they are assigned to my program. One thing - while I have text in my PBO of my program declaring the status and titlebar, how will the request system know to assign the screen? None of those object are anywhere in the attributes of my program.
You can not create a screen or gui status or gui title without having a program, so there is always a reference to the program. If you go to SE80, and enter your program name, and hit enter, you will see folders for the screens, gui statuses, and gui titles.
The code in your PBO is simply saying that you want to use those for that particular screen, they must already exist in your program.
In reality, you should always create all of the objects of your program in SE80, and forget about SE51 and SE41, in doing so you will see how all of the objects of your program are together when using SE80.
And yes, to confirm, the screen and gui status/titles will be transported with your program.
You can do it manually from SE80 Transaction.
1. Go to SE80 Transaction.
2. Select the Program from teh DropDown .
3. Enter your Program name
4. Expand your Program from the left area.
5. Select the GUI Status / any component .
6. Right Click --> Write Transport Entry.
Hope this will solve your Problem !
Thanks & regards,