Q:

Why does delphi BPL package ask for rtl190.bpl...?

Suppose I have a project in delphi 7 (or XE no matter) named as test.exe and another project named as pkg1.bpl(project type is Package). There is a form (like aboutbox) in the bpl project and a function to show this form.
Now I compile these two projects and run test.exe. When I click on btn1, the pkg1.bpl loads and calls the function and the aboutbox form shows up. Everything is ok...!
But when I copy this test.exe and pkg1.bpl to another PC and run test.exe, there is no problem. But when I click on the btn1, an error occurs:

required package (rtl190.bpl) not found(or like this).

I want to know why delphi does not use rtl190.bpl which embedded in test.exe?
or what must I do to solve this error?
I want to use bpl packages for my forms in my projects, but I do not want to copy rtl190.bpl or vcl190.bpl or like these files to my customers PCs.
I want to (if it is possible) embed required bpl files in ONE file as other packages can use from that.

A:

I want to know why delphi does not use rtl190.bpl which embedded in test.exe?

There's no reason why it would do that. The only supported location for packages is on disk. That's a reflection of the underlying system. A package is a DLL, and DLLs must reside on disk. Any tool that loads them from memory does so using unsupported implementation details, and is liable to break in future versions of Windows.
Here are your options, as I see them:

Stop using runtime packages, and compile everything into a single executable. Then you can simply copy that single executable and that's all you need to do.
Continue using runtime packages, and copy the executable and all required runtime packages into the same directory. 
Continue using runtime packages, but embed them into your executable. Then, when the executable runs, unpack the executables onto disk, and load the packages dynamically. Dynamic loading of packages will increase the complexity of your program.
Continue using runtime packages, but embed them into your executable. Then, when the executable runs, load the executables from memory using unsupported techniques, for instance with BTMemoryModule. This will increase the complexity of your program even more.

Frankly, I regard options 3 and 4 as verging on insane. Choose option 1.

