Hallo, ich habe eine Frage bezüglich der SpinEdit und FloatSpinEdit-Komponente. Steht der Mauszeiger auf diesen Komponenten in einer Form, kann man mit dem Scrollrad die Werte verändern. Dies mag zwar zuweilen recht angenehm sein, ist aber manchmal auch fatal.
Wie kann man das abschalten, ich habe keine Möglichkeit dazu gefunden.
Vielen Dank schon mal im Voraus für Eure Hilfe
TSpinEdit Mausrad abschalten
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: TSpinEdit Mausrad abschalten
Hallo,
Du kannst jeweils eine Klasse der beiden Steuerelemente ableiten und die Eigenschaft OnMouseWheel veröffentlichen.
Grüße Nouba
Du kannst jeweils eine Klasse der beiden Steuerelemente ableiten und die Eigenschaft OnMouseWheel veröffentlichen.
Code: Alles auswählen
unit uSampleForm;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Spin;
type
{ TNoWheelSpinEdit }
TNoWheelSpinEdit = class(TSpinEdit)
published
property OnMouseWheel;
private
procedure DisableSpinning(Sender: TObject; Shift: TShiftState;
WheelDelta: integer; MousePos: TPoint; var Handled: boolean);
end;
{ TNoWheelFloatSpinEdit }
TNoWheelFloatSpinEdit = class(TFloatSpinEdit)
published
property OnMouseWheel;
private
procedure DisableSpinning(Sender: TObject; Shift: TShiftState;
WheelDelta: integer; MousePos: TPoint; var Handled: boolean);
end;
{ TSampleForm }
TSampleForm = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
FNWSpinEdit: TNoWheelSpinEdit;
FNWFSpinEdit: TNoWheelFloatSpinEdit;
end;
var
SampleForm: TSampleForm;
implementation
{ TNoWheelFloatSpinEdit }
procedure TNoWheelFloatSpinEdit.DisableSpinning(Sender: TObject;
Shift: TShiftState; WheelDelta: integer; MousePos: TPoint;
var Handled: boolean);
begin
{** disable Spinning with Mouse Wheel**}
Handled := True;
end;
{ TNoWheelSpinEdit }
procedure TNoWheelSpinEdit.DisableSpinning(Sender: TObject;
Shift: TShiftState; WheelDelta: integer; MousePos: TPoint;
var Handled: boolean);
begin
{** disable Spinning with Mouse Wheel**}
Handled := True;
end;
{$R *.lfm}
{ TSampleForm }
procedure TSampleForm.FormCreate(Sender: TObject);
begin
FNWSpinEdit := TNoWheelSpinEdit.Create(Self);
with FNWSpinEdit do
begin
Left := 8;
Top := 8;
Width := 50;
Height := 23;
Parent := Self;
OnMouseWheel := @DisableSpinning;
end;
FNWFSpinEdit := TNoWheelFloatSpinEdit.Create(Self);
with FNWFSpinEdit do
begin
Left := 64;
Top := 8;
Width := 50;
Height := 23;
Parent := Self;
OnMouseWheel := @DisableSpinning;
end;
end;
end.
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: TSpinEdit Mausrad abschalten
Vielen Dank Nouba, werde ich gleich ausprobieren!