When is it too late to get BCH and BTG from the fork from an appropriate wallet? Is it enough that the funds where sent before the forks on the blockchain, or should they also have been recieved (enough with 1 confirmation on the blockchain?)  before the forks, and why?
Is it enough that the funds where sent before the forks on the blockchain, or should they also have been recieved (enough with 1 confirmation on the blockchain?) before the forks


The bitcoins must have been recieved BEFORE the hardfork.


  and why?


If I understood it correctly, an unconfirmed transaction during the hardfork means "that the BTC's are still on the sender's adress".
Why? Because the people behind BCH/BTG copy the whole blockchain at one moment and if your transaction is unconfirmed => it's not in the blockchain => they can't copy it.
And that means that the sender of the BTC will have access to the BCH/BTG and the receiver gets nothing of that.