why #submit not apply in form I create a menu and in callback of it call this function

function floristdev_own_price_choice(){
  module_load_include('inc', 'node', 'node.pages');
  $form = node_add('customflower');
  $form['#submit'][]='floristdev_own_price_choice_sub';
      //      unset($form['#action']);
  dsm($form);
  return drupal_render($form);

}
function floristdev_own_price_choice_sub($form,$form_state){
    drupal_set_message('I called');
    dsm('blah blah');
}


but the floristdev_own_price_choice_sub never call ( I put die and drupal_set_message to test is it call ) 
where the problem, I am using drupal 7.
This is probably what's happening...


node_add() calls drupal_get_form() internally, which finalises the form and commits submit/validate handler data to the cache.
You're modifying the data in the form array after it's been saved to cache.
When the form submits, the page reloads and the API grabs the cached submit handlers from the store. As your submit function was never saved alongside that data, the API doesn't know about it.


You should use hook_form_alter() as already noted by Jimmajamma in the comments, then you won't have this problem at all.