Hi
I think following code should not report that 'Msg' is declared but never used, because you cannot remove Msg in this case.
TMyForm = class(TForm)
procedure WmDisplayChange(var Msg: TMessage); message WM_DISPLAYCHANGE;
end;
...
procedure TMyForm.WmDisplayChange(var Msg: TMessage);
begin
// some code not referencing Msg
end;