में यूआरएल पर क्लिक करें मैं RichEdit को अपडेट करने की कोशिश कर रहा हूं ताकि यह यूआरएल का पता लगा सके और ब्राउज़र में खोलने के लिए उस पर क्लिक करने में सक्षम हो। पता लगा रहा यूआरएल आसान है, मैं तो बस से http://www.scalabium.com/faq/dct0146.htmRichEdit
mask := SendMessage(MNote.Handle, EM_GETEVENTMASK, 0, 0);
SendMessage(MNote.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
SendMessage(MNote.Handle, EM_AUTOURLDETECT, Integer(True), 0);
निम्नलिखित कोड का उपयोग लेकिन दूसरे भाग में मेरे लिए काम नहीं करता। वे EN_LINK संदेश और उसके प्रसंस्करण पर कब्जा करने के लिए निम्न कोड दे:
type
TForm1 = class(TForm)
protected
procedure WndProc(var Message: TMessage); override;
end;
...
procedure TForm1.WndProc(var Message: TMessage);
var
p: TENLink;
strURL: string;
begin
if (Message.Msg = WM_NOTIFY) then
begin
if (PNMHDR(Message.LParam).code = EN_LINK) then
begin
p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
if (p.msg = WM_LBUTTONDOWN) then
begin
SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, LongInt(@(p.chrg)));
strURL := RichEdit1.SelText;
ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL);
end
end
end;
inherited;
end;
जब मैं कार्यक्रम चलाने, यूआरएल का पता चला है, लेकिन इस पर क्लिक कुछ भी नहीं है। डीबग का उपयोग करके मुझे पता चला कि जब मैं यूआरएल पर क्लिक करता हूं तो संदेश। संदेश = WM_NOTIFY सत्य नहीं है। मैंने फिर TRichEdit के WndProc को ओवरराइड करने का प्रयास किया, लेकिन परिणाम वही है। कोई सुझाव?
यह भी देखें [समृद्ध संपादन नियंत्रण पर यूआरएल के लिए माउस क्लिक को कैसे लागू करें] (http://stackoverflow.com/q/11398248/850848)। –
यह मेरे लिए काम करता है। – Ampere