راهنمایی در مورد نوشتن یک تابع در دلفی
سلام خدمت دوستان عزیز
من میخوام یه تابع بنویسم که برای EDITBOX های که خاصیت Number Only در اونها فعال است در صورتی که به جای وارد کردن عدد ، حرف وارد کردیم یه Hint باز بشه و پیغام دلخواه رو نشون بده من خودم این تابعو نوشتم ولی مشکل اینه که کلا هر ورودی که دارم چه عدد ، چه حروف Hint ظاهر میشه میخواستم راهنمایی کنید ببینم مشکل از کجاست
کد:
procedure nHint(hHint:string;AEdit:TEdit);
var
point:TPoint;
Key:Char;
begin
if AEdit.NumbersOnly = true then
begin
if not(CharInSet(Key,['0'..'9',#8])) then
begin
form1.BalloonHint1.Description := hHint;
point.X := AEdit.Width div 2;
point.Y := AEdit.Height div 1;
form1.BalloonHint1.ShowHint(AEdit.ClientToScreen(point));
Abort;
end
else
begin
form1.BalloonHint1.HideHint;
end;
end;
end;
procedure TFrame1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
nHint('Number Only',Edit1);
end;
پاسخ : راهنمایی در مورد نوشتن یک تابع در دلفی
سلام و درود.
کدتون رو به شکل زیر تصحیح کنید :
کد:
procedure nHint(hHint:string;AEdit:TEdit;var Key: Char);
var
point:TPoint;
begin
if not( Key In ['0'..'9', #8, ^V] ) Then // #8 = backspace
begin
Form2.BalloonHint1.Description := hHint;
point.X := AEdit.Width div 2;
point.Y := AEdit.Height div 1;
Form2.BalloonHint1.ShowHint(AEdit.ClientToScreen(point));
Abort;
end
else
begin
Form2.BalloonHint1.HideHint;
end;
end;
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
nHint('Number Only',Edit1,Key);
end;
موفق و موید باشید