के अंदर एक विंडो बनाना 2 अलग-अलग परियोजनाओं के बीच एक संदेश भेजने की कोशिश कर रहा है, लेकिन मेरी समस्या यह है कि मैं रिसीवर को टीटीएचड ऑब्जेक्ट के अंदर चलाने की कोशिश कर रहा हूं, लेकिन WNDProc किसी ऑब्जेक्ट के अंदर से काम नहीं करेगा, एक फ़ंक्शन होना चाहिए, क्या टीटीएचड के अंदर एक विंडो बनाने के लिए वैसे भी है जो धागे के अंदर संदेशों को संसाधित कर सकता है?टीटीएचड
यहाँ मैं क्या मतलब
function TDataThread.WindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := 0;
case uMsg of
WM_DATA_AVA: MessageBox(0, 'Data Avaibale', 'Test', 0);
else Result := DefWindowProc(hwnd, uMsg, wParam, lParam);
end;
end;
Procedure TDataThread.Create(const Title:String);
begin
HAppInstance := HInstance;
with WndClass do
begin
Style := 0;
lpfnWndProc := @WindowProc; //The Error Lies here (Variable Required)
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := HAppInstance;
hIcon := 0;
hCursor := LoadCursor(0, IDC_ARROW);
hbrBackground := COLOR_WINDOW;
lpszMenuName := nil;
lpszClassName := 'TDataForm';
end;
Windows.RegisterClass(WndClass);
MainForm := CreateWindow('TDataForm', PAnsiChar(Title), WS_DLGFRAME , XPos, YPos, 698, 517, 0, 0, hInstance, nil);
end;
मैं तो मैं FindWindow और FindWindowEx का उपयोग करता है, तो
सुझाव के रूप में, मुख्य थ्रेड संदेश मिलता है और अपने काम का संकेत थ्रेड जब प्रक्रिया के लिए नया डेटा उपलब्ध है। – jachguate
विंडोज़ में सभी थ्रेड बराबर हैं, उनके बारे में "मुख्य" या "पृष्ठभूमि" कुछ भी नहीं है। वे इस बात में भिन्न होते हैं कि उनके पास संदेश लूप है या नहीं, और एक ऐसा है जो पहले प्रक्रिया में बनाया गया था, लेकिन यह अंतर के रूप में इसके बारे में है। COM के साथ इंटरैक्शन के लिए एक थ्रेड की आवश्यकता हो सकती है जिसमें एक संदेश लूप हो, थ्रेड में विंडो के साथ काम करने के लिए उसे एक संदेश लूप होना आवश्यक हो।एक धागा के साथ संवाद करने के लिए एक संदेश लूप भी एक अच्छा तरीका है। वीसीएल के अलावा इसके लिए एक खराब मैच होने के अलावा प्रक्रिया में एकाधिक संदेश लूप के साथ कुछ भी गलत नहीं है। – mghie
तो क्या कोई तरीका नहीं है कि मैं अपने धागे को अन्य प्रक्रियाओं के साथ संवाद कर सकूं? प्रत्येक प्रक्रिया को अपने धागे का जवाब वापस भेजना होगा ताकि यह दिखाया जा सके कि यह डेटा के लिए फ़ाइल को मैप करने के लिए तैयार है! – killercode