Réponse acceptée !
{-------------------------------------------------------------------------} { Last modified } { Date : 12/07/2009 11:05:11 } { Author : Cirec http://www.delphifr.com/auteur/CIREC/311214.aspx } {-------------------------------------------------------------------------} unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm2 = class(TForm) btn_CreateEdit: TButton; procedure btn_CreateEditClick(Sender: TObject); {Il faut créer une procedure qui correspond au type d'évenement} procedure MyKeyPressEvent(Sender: TObject; var Key: Char); private
public
end;
var Form2: TForm2; Edit1, Edit2, Edit3: TEdit;
implementation
{$R *.dfm} uses xpman;
procedure TForm2.MyKeyPressEvent(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9', #8]) then Key := #0; end;
procedure TForm2.btn_CreateEditClick(Sender: TObject); begin Edit1 := TEdit.Create(Self); with Edit1 do begin SetBounds(8, 8, 121, 21); Parent := Self; Name := 'Edit1'; Text := EmptyStr; {Et on lui assigne l'évenement "MyKeyPressEvent"} OnKeyPress := MyKeyPressEvent; end;
Edit2 := TEdit.Create(Self); with Edit2 do begin SetBounds(137, 8, 121, 21); Parent := Self; Name := 'Edit2'; Text := EmptyStr; {Idem on lui assigne l'évenement "MyKeyPressEvent"} OnKeyPress := MyKeyPressEvent; end;
{et voici la solution, de loin, la plus simple à mettre en oeuvre} Edit3 := TEdit.Create(Self); with Edit3 do begin SetBounds(8, 37, 121, 21); Parent := Self; Name := 'Edit3'; Text := EmptyStr; end; {La ligne suivante limite les entrées aux nombres} {et si tu ajoutes un "XPMan" aux uses un son retentira et une bulle s'affichera pour informer l'utilisateur que seuls les nombres sont acceptés} SetWindowLongA(Edit3.Handle,GWL_STYLE,GetWindowLongA(Edit3.Handle,GWL_STYLE) or ES_NUMBER); end;
end. @+ Cirec
|