delphi - TypeCasting : what is difference between below 2 lines of code? -


what difference between below 2 lines of code. both trying path , 1 working , other throwing error. working on delphi-7

path:= (((fformowner tform).designer) idesigner).getprivatedirectory; --working path:= idesigner(tform(fformowner).designer).getprivatedirectory ;  --error 

below code using line of code path.

constructor tsamplecomponent.create(aowner: tcomponent); begin   inherited create(aowner);   fformowner:=tform(owner);   if not (owner tform)     repeat       fformowner:=tform(fformowner.owner);     until (fformowner tform) or (fformowner.owner=nil);    if (csdesigning in componentstate)     path:= (((fformowner tform).designer) idesigner).getprivatedirectory   else     path:=extractfilepath(application.exename); . .  end; 

idesigner(tform(fformowner).designer) 

this performs simple reinterpretation cast of designer. fail because designer of type idesignerhook not same idesigner.

(fformowner tform).designer) idesigner 

this performs runtime query idesigner , resolved call queryinterface. correct way obtain different interface existing one.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -