Конкретно, проблемы с процедурой WndProc:
Код:
protected procedure WndProc(var Msg: TMessage); override; end; { ----------------- } procedure TfrmMain.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(rechat.Handle, EM_EXSETSEL, 0, LongInt(@(p.chrg))); strURL := RichEdit1.SelText; ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL); end end end; inherited; end; (* TForm1.WndProc *)
Выдает ошибку
Код:
[Error] mainform.pas(385): Overloaded procedure 'WndProc' must be marked with the 'overload' directive
и подсвечивает объявление функции.
Если поставить overload, то сыпет другой ошибкой
Код:
[Error] mainform.pas(385): Previous declaration of 'WndProc' was not marked with the 'overload' directive
. Че не так? За#бался уже...
Решение:
Код:
protected procedure WndProc(var Msg: TMessage); override;
Сдесь ты override написал.
Код:
procedure TfrmMain.WndProc(var Message: TMessage);
А сдесь нет. Собственно об этом тебя и предупредил компилятор.