neccooy Posted November 30, 2013 Share Posted November 30, 2013 input nesnesine belirli sayıda (20 karakter) karakter girilmesini istiyorum. bu sayı geçilince uyarı verecek ve yazmaya izin vermeyecek. uyarı vermesini sağladım ama yazmayı engelleyemedim. hem uyarı veriyor hem de yazıyor. :) Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 30, 2013 Editor Share Posted November 30, 2013 Resimdeki gibi kaç karakter istiyorsanız ayarlayabilirsiniz. http://prntscr.com/27nshg Quote Link to comment Share on other sites More sharing options...
milano88 Posted November 30, 2013 Share Posted November 30, 2013 Bu şekildede kullanılabilir if #Input.GetText(this) == 20 then Dialog.Message("Hata", "En fazla 20 karakter girebilirsiniz !") end Quote Link to comment Share on other sites More sharing options...
KintaRo Posted November 30, 2013 Share Posted November 30, 2013 milano senin verdiğin kod evet 20. karakterden sonra hata verir ama yine de yazılabilir. şu şekilde yapılırsa metnin ilk 20 karakterini kopyalayıp diğerlerini yok sayar ve inputa yazar. if #Input.GetText(this) == 20 then Dialog.Message("Hata", "En fazla 20 karakter girebilirsiniz !") kelime = String.Mid(Input.GetText(this), 1, 20) Input.SetText(this, kelime) end Quote Link to comment Share on other sites More sharing options...
blackman12 Posted November 30, 2013 Share Posted November 30, 2013 Yavuz buraya 25 karakterlik bir metin yapıştırsam bu da işe yaramaz. Bu tür durumlarda her zaman işinizi garantiye alıp >= kullanmak daha doğru. Quote Link to comment Share on other sites More sharing options...
milano88 Posted November 30, 2013 Share Posted November 30, 2013 milano senin verdiğin kod evet 20. karakterden sonra hata verir ama yine de yazılabilir. şu şekilde yapılırsa metnin ilk 20 karakterini kopyalayıp diğerlerini yok sayar ve inputa yazar. if #Input.GetText(this) == 20 then Dialog.Message("Hata", "En fazla 20 karakter girebilirsiniz !") kelime = String.Mid(Input.GetText(this), 1, 20) Input.SetText(this, kelime) end bu şekildede hata mesajından sonra harf, harf tekrar yazılabilir neyse bir function yaptım bu olayı çözer sanırım Global --- Detaylı bilgi ---- http://msdn.microsoft.com/en-us/library/windows/desktop/ff485923(v=vs.85).aspx EM_GETLIMITTEXT = 213 EM_SETLIMITTEXT = 197 milano88={} function milano88.Maximum(sInput, sLen) local tProps = Input.GetProperties(sInput); if tProps then DLL.CallFunction("User32.dll", "SendMessageA", tProps.WindowHandle..","..EM_SETLIMITTEXT..","..sLen..",0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end end function milano88.Control(sInput, MaxText) TextInput = Input.GetText(sInput) if String.Length(TextInput) == MaxText then Dialog.Message("Uyarı", "Input karakter sayısı ("..MaxText..")'dan fazla olamaz !", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1) end end On Show milano88.Maximum("Input1", 20) Input On Key milano88.Control(this, 20) Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 30, 2013 Editor Share Posted November 30, 2013 Masktan basitçe ayarlamak varken :D Quote Link to comment Share on other sites More sharing options...
neccooy Posted November 30, 2013 Author Share Posted November 30, 2013 Mask olmuyor, ilk onu denemiştim. Kintaro'nun daha önce paylaştığı büyük harf çevirme fonksiyonunu da kullanıyorum, onunla çalışmıyor, ilk harfe basar basmaz direkt 20. karaktere gidiyor. Amacım kelime oyununda kullanıcı soru hazırlarken sorunun cevabının yazılacağı inputta boşluk vermeden büyük harf kullanarak en fazla 20 karakter giriş yapılması. diğer verilen yanıtları uygulamaya çalışıyorum şu an. Teşekkürler herkese... Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 30, 2013 Editor Share Posted November 30, 2013 Mask ile yapılıyor işte 5 karakter belirlediğim zaman 5 ten fazla girilmiyor. Quote Link to comment Share on other sites More sharing options...
neccooy Posted November 30, 2013 Author Share Posted November 30, 2013 (edited) function BuyukHarf(nesne) tTurkChar1 = {"ş", "ç", "ğ", "ı", "ü", "ö", "i"} tTurkChar2 = {"Ş", "Ç", "Ğ", "I", "Ü", "Ö", "İ"} for i,v in pairs(tTurkChar1) do sMetin = Input.GetText(nesne) sDegisen = String.Replace(sMetin, v, tTurkChar2[i], true) Input.SetText(nesne, sDegisen) end sMetin = Input.GetText(nesne) uMetin = String.Upper(sMetin) Input.SetText(nesne, uMetin) sMetin = Input.GetText(nesne) Input.SetSelection(nesne, #sMetin+1, #sMetin+1) end mask, yukarıdaki Büyük Harf fonksiyonundan dolayı olmuyor hocam. ilk harfe basınca inputta tuhaf şeyler oluyor. şu şekilde yaptım, şimdilik oldu: Say = String.Length(Input.GetText(this)); if Say > 20 then YeniKelime = String.Mid(Input.GetText(this), 1, 20) Input.SetText(this, YeniKelime) Dialog.Message("Sosyal Bilgiler Kelime Oyunu", "Cevabınız en fazla 20 karakter olabilir!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); end if e_Key == 32 then Dialog.Message("Sosyal Bilgiler Kelime Oyunu", "Cevap kelimeleri arasında boşluk bırakılamaz!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); Input.SetText(this, "") end Edited November 30, 2013 by neccooy Quote Link to comment Share on other sites More sharing options...
blackman12 Posted November 30, 2013 Share Posted November 30, 2013 Neccooy burada AutoIT olarak yazdım: http://www.tnctr.com/topic/236450-kelime-oyunu-v1/#entry1379351 Quote Link to comment Share on other sites More sharing options...
neccooy Posted November 30, 2013 Author Share Posted November 30, 2013 İyi bir örnek olmuş, Ben soruları 5-6-7-8 sınıf düzeylerine ve ünite ünite ayıracağım. Oyunu bireysel değil de sınıfta gruplar olarak oynayacağız inşallah... Sendeki ipucu harf verirken karışık harf animasyonu çok hoş olmuş, ams'de de benzer bir şey yapılabilir sanırım... Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted November 30, 2013 Editor Share Posted November 30, 2013 Neccoy istediğin tam olarak inputa girilen karakter sayısı 20 yi geçmemesi değilmi büüyk küçük harfle alakalı ne gibi problem yaşadın Quote Link to comment Share on other sites More sharing options...
blackman12 Posted November 30, 2013 Share Posted November 30, 2013 Valla ben tam olarak yarışmanın eski formatına uygun yaptım programı, tek sorun görsellik tabiki :D onunla da uğraşmıyorum zaten genelde. Quote Link to comment Share on other sites More sharing options...
neccooy Posted November 30, 2013 Author Share Posted November 30, 2013 Neccoy istediğin tam olarak inputa girilen karakter sayısı 20 yi geçmemesi değilmi büüyk küçük harfle alakalı ne gibi problem yaşadın Kintaro'nun Büyük harf fonksiyonunu da kullanıyorum, yukarıda verdim. Onunla mask olayı olmadı işte. Boşver, yukarıda da yazdım şimdilik çözdüm olayı. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.