How can you protect your software? - Purchase third party or create yourself?
What kind of your key component? - Retrieve from Hardware ID? What is Hardware you often use?
How can I create online activation? - I need to know how to get data from the Website (that containing customer key).
What I'm going to say doesn't really answer any of your questions but, hopefully, it will give you something to think about.
Any protection scheme, no matter how sophisticated can be defeated. It only depends on the talent and interest of the individual considering defeating it. For instance, Adobe has a mixed, complicated and convoluted protection scheme for their suite, yet every one of their attempts at protecting their software has been defeated. Same for Autodesk AutoCAD in a long long list of such products.
Hardware keys, such as usb (and parallel port) keys have also been defeated. Those that haven't are simply for products most people are not interested in.
Another thing you should consider is, Borland (way back) made plenty of money selling Turbo Pascal and early Delphi versions which had no protection at all, yet people purchased their products because they were good products at a reasonable price. These days, Delphi has protection mechanisms like those you are mentioning yet, has only a shadow of the market share Turbo products had (which forces the company to increase the price.. making the situation worse.)
Very often, protection schemes create more problems for the legitimate users than they do for those who use pirated copies.
Invest the time and effort you'd put in protection schemes to making the software better. That, along with a fair price, is the best software protection you can get.
Lastly, as strange as this may sound, individual piracy (not corporate) isn't such a bad thing. The more people that use your software, the more people have expertise in operating your software. A readily available pool of experts is a very important factor in the corporate decision making of which software to hang their future on (not much _new_ corporate development being done in Delphi and part of the reason, aside from the price, is the very limited pool of Delphi experts compared to the pools available for other languages (C/C++, C#, etc.))
Make better software, price it reasonably. Let people who'd never buy a copy be able to obtain it and train themselves in it (that's your expertise pool, for the cost of your software, you have people training themselves in how to use it, that's quite a good deal). Make the money in support which is what customers that depend on your software _really_ want. MS understands that, that's why Visual Studio community edition - with updates/some support/ and more bells and whistles than a world fair - is free.
HTH.