PDA

View Full Version : نوشتن فقط اعداد در Edit



Reza_kh
شنبه 13 خرداد 1385, 10:54 صبح
چطوری می شه در Edit فقط عدد نوشت و حروف رو نشه ؟

B_YAGHOBI
شنبه 13 خرداد 1385, 11:05 صبح
میتوانید از TMaskEdit استفاده کنید.

اگر الزاما از TEdit میخواهید استفده کنید خودتان میبایست کلیدهای وارد شده را در OnKeyDown
کنترل کنید که حروف وارد نشوند

را دیگرش این است که یک کامپوننت TUpDown در کنار آن قرار دهید و پروپرتی Associate آنرا Edit
خودتان قراردهید.

m-khorsandi
شنبه 13 خرداد 1385, 13:37 عصر
کنترل edit (http://www.barnamenevis.org/forum/showthread.php?t=45129)
جدا کننده ارقام (http://www.barnamenevis.org/forum/showthread.php?t=39017)
آقا چه جوری میشود در یک کادر متن فقط عدد وارد کرد؟ (http://www.barnamenevis.org/forum/showthread.php?t=29736)

اگه قبل از ایجاد تاپیک جستجو کنید چند تا تاپیک دیگه در این مورد پیدا میکنید.

babak_delphi
سه شنبه 16 خرداد 1385, 02:22 صبح
در OnKeyPress این کد رو بنویسید:
if Pos(Key,#13#8'0123456789') = 0 then
Key := #0;

mzjahromi
سه شنبه 16 خرداد 1385, 06:29 صبح
در OnKeyPress این کد رو بنویسید:
if Pos(Key,#13#8'0123456789') = 0 then
Key := #0;
این مورد درسته و تاحدودی کار رو انجام میده ولی برای مواردی که از Copy و Paste استفاده بشه عملی نیست%

babak869
سه شنبه 16 خرداد 1385, 07:05 صبح
این مورد درسته و تاحدودی کار رو انجام میده ولی برای مواردی که از Copy و Paste استفاده بشه عملی نیست%
درسته اما کپی و Paste رو چه با راست کلیک و چه با Ctrl+V میشه کنترل کرد.برای اولی یه PopupMenu به Edit نسبت میدی و در رویداد OnChange اون Edit چک میکنی اگه کلید Ctrl+V زده شد فلان پیغام رو بده یا هیچ عکس العملی انجام نده
موفق باشید

mzjahromi
سه شنبه 16 خرداد 1385, 10:12 صبح
درسته اما کپی و Paste رو چه با راست کلیک و چه با Ctrl+V میشه کنترل کرد.برای اولی یه PopupMenu به Edit نسبت میدی و در رویداد OnChange اون Edit چک میکنی اگه کلید Ctrl+V زده شد فلان پیغام رو بده یا هیچ عکس العملی انجام نده
موفق باشید
درسته ولی بهتر نیست بجای اینکه کاربر رو محدود کنیم مشکل خودمون رو حل کنیم.
میتونیم از OnChange استفاده کنیم

davoodmz
چهارشنبه 17 خرداد 1385, 10:44 صبح
با سلام
با اجازه دوستان
این کد در رویداد onchange



var i:integer;
s:string;
begin
for i:=1 to length(edit1.Text) do
if (edit1.Text[i]<'0') or (edit1.Text[i]>'9') then
begin
s:=edit1.Text;
delete(s,i,1);
edit1.Text:=s;

suiMessageDialog1.ShowModal;

if length(edit1.Text)>0 then
begin
edit1.SelectAll;
edit1.CutToClipboard;
edit1.PasteFromClipboard;
end;
end;
end;

از تگ code استفاده کنید
----------------
البته من این کد را از خود سایت محترم برنامه نویس پیدا کردم فکر می کنم کار آقا بابک باشد یا آقای جهرمی یادم نیست به هر حال دست همه درد نکند
داود