को छोड़कर सबकुछ काम करता है मैं अपने सॉफ़्टवेयर के साथ helpfile सेटअप प्राप्त करने पर काम कर रहा हूं। मैंने कई विशिष्ट रूपों/फ्रेम/नियंत्रणों के लिए हेल्पकॉन्टेक्स्ट संख्याएं जोड़ दी हैं और वे सभी ठीक काम करते हैं। समस्या यह है कि मुख्य रूप कोई मदद नहीं ला रहा है। इस सब के लिए मैं केवल सहायता को ट्रिगर करने के लिए F1 का उपयोग कर रहा हूं।डेल्फी XE2 एप्लिकेशन में हेल्पफ़ाइल को लिंक करना - मुख्य रूप से
मैं डेल्फी या हेल्पफाइल पर एक विशेषज्ञ नहीं हूं, लेकिन मैंने जो किया है उसे पोस्ट करूंगा और जहां मैंने देखा है।
संपादित करें: कुछ मदद के लिए धन्यवाद, अब मुझे लगता है कि यह मुद्दा मुख्य रूप से एमडीआई माता-पिता होने के कारण है। यह अभी भी समस्या का समाधान नहीं करता है .. यह लगभग मेरे लिए एक बग जैसा लगता है लेकिन मुझे लगता है कि यह किसी कारण से जानबूझकर हो सकता है। एंडएडिट
मैं इस इकाई को शामिल कर रहा हूं: दर्शक के लिए HtmlHelpViewer। मुख्य रूपों में कन्स्ट्रक्टर बनाएं मैंने एप्लिकेशन जोड़ा है। हेल्पफाइल: = 'asdf.chm'। अन्य सभी रूपों के लिए मैंने अभी संदर्भ संख्याएं जोड़ दी हैं और यह तुरंत काम कर चुकी है। मैंने मुख्य रूप पर कोशिश की और कुछ भी नहीं हुआ। तो मैंने एक एप्लीकेशन जोड़ने की कोशिश की। ऑनहेल्प घटना लेकिन इसे मुख्य रूप में नहीं कहा जाता है (और यह उन सभी अन्य रूपों के लिए करता है जहां सहायता काम कर रही है)।
अंतिम उपाय जो मैं सोच सकता था कि कोड में गहराई से पता लगाना था और क्या हो रहा था। मुझे Vcl.Forms में TCustomForm.WMHelp मिल गया था जहां विभाजन हो रहा था। कहा समारोह इस लूप है:
if iContextType = HELPINFO_WINDOW then
begin
Control := FindControl(hItemHandle);
while (Control <> nil) and (not ControlHasHelp(Control)) do
Control := Control.Parent;
if Control = nil then Exit;
GetHelpInfo(Control, HType, ContextID, Keyword);
Pt := Control.ClientToScreen(Point(0, 0));
end
जब मुख्य रूप बुला रहा था सहायता नियंत्रण नहीं के बराबर होगा और फिर इसे बाहर आ जाएंगे। कुछ और ठीक हो जाएगा।
मुझे स्पष्ट रूप से नहीं पता कि यह क्यों हो रहा है। जवाब कुछ बहुत बुनियादी हो सकता है। किसी भी सुझाव की सराहना की जाएगी!
क्या आपने मुख्य फॉर्म के लिए 'हेल्पकॉन्टेक्स्ट' सेट किया था? –
@ डेविड हेफरन: हाँ मैंने किया। मुझे इसका उल्लेख करना चाहिए था, लेकिन यह सिर्फ मुख्य रूप है, न कि इसके बच्चे। मैंने फॉर्म पर एक बटन डाला (बिना संदर्भ सहायता के) और जब यह फोकस करता है और मैं मुख्य रूप लोड के लिए F1 को helpcontext दबाता हूं। यदि कोई फोकस नहीं है तो कोई मदद लोड नहीं होती है। – Sentient
मैं डीबगर के तहत WMHelp हैंडलर पर एक नज़र डालें और देखें कि FindControl से क्या लौटाया गया है। –