Jump to content

Input A Karakter Sayısı Kısıtlaması Getirmek


neccooy
 Share

Recommended Posts

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. :)

Link to comment
Share on other sites

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
Link to comment
Share on other sites

 

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)
Link to comment
Share on other sites

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...

Link to comment
Share on other sites


 

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 by neccooy
Link to comment
Share on other sites

İ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...

Link to comment
Share on other sites

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ı. 

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...