با این کد شما میتوانید برای فیلدهایی که میخواهید فقط در آنها تایپ کردن عدد مقدور باشد یک BalloonHint بزارد.در صورتی که کاربر غیر از عدد در اون فیلد تایپ کرد به کاربر پیغام مورد نظر شمارو به صورت بالن بده.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
procedure nHint(X, Y: integer; AEdit: TEdit; var Key: Char); // برای فیلدهای Number Only var point: TPoint; begin if not(Key In ['0' .. '9', #8, ^V]) Then // #8 = backspace begin Form1.BalloonHint1.Description := 'تنها وارد کردن عدد مجاز است'; point.X := AEdit.Width div X; if (Y = 0) then point.Y := 0 else point.Y := AEdit.Height div Y; Form1.BalloonHint1.ShowHint(AEdit.ClientToScreen(point)); Abort; end else begin Form1.BalloonHint1.HideHint; end; |
شما باید یک BalloonHint از نوار ابزارهای دلفی به فرمتون اضافه کنیدو بعدش به روش زیر این کد رو در حالت KeyPress فیلد مورد نظرتون اجرا کنید.
حالت کلی دستور:
1 |
nHint(X, Y;EditA;Key); |
که به جای X و Y هر عددی بین ۰,۱,۲ میتونید بزارید که برای تعییت موقعیت بالنتون هستش،به جای EditA نام گزنه مورد نظر خودتونو میزارید که میخواید بالن روی اون نمایش داده بشه،و مقدار Key رو هم تغییر نمیدید و همون Key رو میزارید. فقط حتما با ید خاصیت Number Only رو تو تنظیمات گزینه مورد نظرتون فعال کنیم.
به عنوان مثال:
1 2 3 4 |
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin nHint(2, 0, Edit1, Key); end; |