اخي العزيز kachwahed اعلم ان هناك حل ولدي الحل بطريقتي الخاصة وبدون استخدام رسائل الاحداث
لكن اردت ان اعرف بعض التجارب الاخرى لدى الشباب
حتى لااطيل عليكم اليكم الحل
طبعا في هذا المثال يمكن ادخال قيمة رقمية ولكن من المستحيل ادخال قيمة حرفية
لكن اردت ان اعرف بعض التجارب الاخرى لدى الشباب
حتى لااطيل عليكم اليكم الحل
طبعا في هذا المثال يمكن ادخال قيمة رقمية ولكن من المستحيل ادخال قيمة حرفية
كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, DecimalSeparator]) then
begin
Key := #0;
Beep;
end;
end;
function isNum(Value: String): Boolean;
var
X: Integer;
begin
Result:=Value <> '';
IF Result Then
For X:=1 To Length(Value) Do
Case Value[X] OF
'0'..'9':;
Else
Result:=False;
Break;
End;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
edit: TEdit;
begin
edit:=TEdit(sender);
if isNum(edit.text) then
edit.ClearUndo
else
begin
edit.OnChange:=nil;
edit.Undo;
edit.OnChange:=Edit1Change;
edit.ClearUndo;
edit.SelectAll;
end;
end;
