में एक combobox (दाएं हाथ के किनारे) के अंदर एक छवि डालकर मैं डेल्फी/Win32 में एक combobox (दाएं हाथ किनारे) के अंदर एक छवि खींचना चाहता हूँ।डेल्फी/Win32
कंबोबॉक्स में शैली csDropDown है। यह csOwnerDrawFixed या csOwnerDrawVariable के साथ काम नहीं करता है।
combobox ब्राउज़र के पता बार के समान संपादन योग्य होना चाहिए।
क्या कोई अतिरिक्त डेल्फी घटक बनाये बिना Win32 समाधान है?
मैंने निम्नलिखित की कोशिश की, लेकिन यह काम नहीं करता है। क्या मैं डेल्फी 7 के साथ ऐसा कर सकता हूं?
TForm1 = class(TForm)
...
private
FChDirComboWndProc: TWndMethod;
procedure ChDirComboWndProc(var Message: TMessage);
...
procedure TForm1.FormCreate(Sender: TObject);
begin
FChDirComboWndProc := ChDirComboBox.WindowProc; // save old window proc
ChDirComboBox.WindowProc := ChDirComboWndProc; // subclass
end;
procedure TForm1.ChDirComboWndProc(var Message: TMessage);
begin
WM_ERASEBKGND: begin // WM_PAINT ?
SetBkMode(Message.WParam, TRANSPARENT);
SetTextColor(Message.wParam, GetSysColor(COLOR_GRAYTEXT));
FillRect(Message.wParam, Rect(3,3,300,30), GetStockObject(BLACK_BRUSH));
Rectangle(Message.wParam, 15,15, 100, 100); //Test
OutputDebugString(PCHar(Format('aa %d %d %d',[Message.WParam, Message.LParam, ChDirComboBox.Handle])));
end;
end;
FChDirComboWndProc(Message); // process message
end;
कंबोबॉक्स में शैली ** सीएसड्रॉपडाउन ** है। यह csOwnerDrawFixed या csOwnerDrawVariable के साथ काम नहीं करता है। Combobox ब्राउज़र के पता बार के समान संपादन योग्य होना चाहिए। मैं इस जानकारी को अपने प्रश्न में जोड़ूंगा, भूलने के लिए खेद है। – Codr