Hallo,
wenn du die Komponente TApplicationEvents auf das Formular ziehst und da in das Event onMessage folgenden Code einfügst, dann würde zumindest Punkt a) gehen.
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.hwnd= Edit1.Handle) and (Msg.message = WM_MOUSEWHEEL) then
if Msg.wParam> 0 then
Edit1.Text := inttostr(strtoint(Edit1.Text) + 1)
else
Edit1.Text := inttostr(strtoint(Edit1.Text) -1);
end;
Veraussetzung ist natürlich, dass im Feld auch immer eine Zahl steht.