2012-02-26 15 views
6

हड़पने के लिए मैं इस वर्ग है:कैसे TRTTIParamter के डिफ़ॉल्ट मान

TMyClass = class 
public 
    function DoSomethingNice(const Value: string = 'Yes please!'): Boolean; 
end; 

अब RTTI का उपयोग कर, यह पैरामीटर मूल्य विधि DoSomethingNice की का डिफ़ॉल्ट मान प्राप्त करने के लिए संभव है? यदि हां, तो कैसे?

मुझे ज्यादातर डी 2010 समाधान में रूचि है, लेकिन एक्सई भी करेगा।

+2

संभव नहीं है, लेकिन आप में इस [QC 93,943] (http://qc.embarcadero.com/wc/q मतदान कर सकते हैं cmain.aspx? डी = 9 3 9 43) – RRUZ

+0

@RRUZ धन्यवाद, मुझे इस बारे में निश्चित नहीं था, लेकिन इसकी उम्मीद थी ... – ComputerSaysNo

उत्तर

11

यह असंभव है, क्योंकि आरटीटीआई को डिफ़ॉल्ट पैरामीटर के बारे में जानकारी नहीं है। डिफ़ॉल्ट पैरामीटर मान केवल संकलन समय पर procedure test(x : integer = 3) उपयोग किया जाता है

इसलिए, अगर हम है ... और फिर पैरामीटर मान के बिना विधि कॉल: test() तो यह test(3)

आप इस जांच करने के लिए के रूप में संकलित किया जाएगा डीबगर में सीपीयू खिड़की खोल सकते हैं: और test() लगता है कि

mov eax, $00000003 
call test 
अब के लिए
+0

धन्यवाद टेरन! – ComputerSaysNo

संबंधित मुद्दे