Zabrana unosa u edit ~~~~~~~~~~~~~~~~~~~~~ Ovaj clanak je napisan za potpune pocetnike, a oni malo bolji mogu i da ga menjaju. PAZNJA! Pisem u Notepad-u tako da moze doci do gresaka U KODU!!! Mnogo sam se mucio kako da uradim zabranu unosa npr. brojeva u Edit komponentu. To nije tako tesko. Na OnChange event edita prvo sam stavio: //------------seci ovde------------ {prvo radimo stringreplace za brojeve 0-9} edit1.text:=StringReplace(edit1.text,'0','',[]); edit1.text:=StringReplace(edit1.text,'1','',[]); edit1.text:=StringReplace(edit1.text,'2','',[]); edit1.text:=StringReplace(edit1.text,'3','',[]); edit1.text:=StringReplace(edit1.text,'4','',[]); edit1.text:=StringReplace(edit1.text,'5','',[]); edit1.text:=StringReplace(edit1.text,'6','',[]); edit1.text:=StringReplace(edit1.text,'7','',[]); edit1.text:=StringReplace(edit1.text,'8','',[]); edit1.text:=StringReplace(edit1.text,'9','',[]); {mozete uraditi i za slova, ali treba i za mala i za velika} //------------seci ovde------------ ...i mislio sam da ce to biti dovoljno. Ali ne, kod ovog koda mi je, kada unesem broj, broj bio izbrisan, medjutim kursor u editu bi se vracao na pocetak, tj. pre stringa. Trazio sam po Internet-u pamcenje pozicije kursora, i nasao sam nesto, a i to sto sam nasao, bilo je veoma komplikovano. Onda sam tako zbunjen, buljio u edit i posle kucanja broja pritiskao bih "End". IDEAAAAAA? Ispod gornjeg koda, ubacite ovaj kod: //------------seci ovde------------ keybd_event( Ord(#35), MapvirtualKey( Ord(#35), 0), 0, 0 ); keybd_event( Ord(#35), MapvirtualKey( Ord(#35), 0), KEYEVENTF_KEYUP, 0 ); {www.crazymix.tk} //------------seci ovde------------ Ovaj kod "simulira" pritisak tastera End. I evo, ovaj kod (gornji, pa ispod donji) radi ono sto sam hteo, replace-uje brojeve i vraca kursor na kraj stringa. Lako, zar ne? P.S. Ako nekog zanima kako doci do ASCII znaka nekog "sivog" tastera sa tastature, evo kako: 1) Otvori novi projekat u delphiu 2) Stavi TMainMenu komponentu na form1 3) Kreiraj npr. File item na main meniju 4) Kreiraj File|Open item... (ime ce mu biti Open1) 5) Stavi mu shortcut key funkcijski taster kojem zelis da vidis ASCII znak (ja sam stavio "End" - ako ne znas kako, kucas "End") 6) Snimi projekat negde 7) U notepad-u otvori Unit1.dfm fajl projekta i nadji Open, za End je ASCII pisalo "35" 8) U programu stavljas ASCII znak kao -=-# + ASCII znak-=- (npr. ako je ASCII 35, stavljas #35) Evo primera iz mog dfm fajla: ------------------------ object Form1: TForm1 Left = 192 Top = 107 Width = 696 Height = 480 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] Menu = MainMenu1 OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object MainMenu1: TMainMenu Left = 160 Top = 56 object File1: TMenuItem Caption = 'File' <-- evo ga File object Open1: TMenuItem Caption = 'Open' <-- evo ga Open ShortCut = 35 <-- evo ASCII koda tastera End, u ovom slucaju, bilo bi #35 end end end end ------------------------ Prosto Avram, http://www.crazymix.tk/ P.S. Za slova namestite edit1.charcase:=ecuppercase; //i u eventu Onchange edit-a unesite (povise begin) var tekst:tedit; i onda ovaj kod (ispod begin): tekst:=Edit1; //ovde unesite koji edit kontrolise ova procedura tekst.text:=StringReplace(tekst.text,'Q','',[]); tekst.text:=StringReplace(tekst.text,'W','',[]); tekst.text:=StringReplace(tekst.text,'E','',[]); tekst.text:=StringReplace(tekst.text,'R','',[]); tekst.text:=StringReplace(tekst.text,'T','',[]); tekst.text:=StringReplace(tekst.text,'Y','',[]); tekst.text:=StringReplace(tekst.text,'U','',[]); tekst.text:=StringReplace(tekst.text,'I','',[]); tekst.text:=StringReplace(tekst.text,'O','',[]); tekst.text:=StringReplace(tekst.text,'P','',[]); tekst.text:=StringReplace(tekst.text,'[','',[]); tekst.text:=StringReplace(tekst.text,']','',[]); tekst.text:=StringReplace(tekst.text,'A','',[]); tekst.text:=StringReplace(tekst.text,'S','',[]); tekst.text:=StringReplace(tekst.text,'D','',[]); tekst.text:=StringReplace(tekst.text,'F','',[]); tekst.text:=StringReplace(tekst.text,'G','',[]); tekst.text:=StringReplace(tekst.text,'H','',[]); tekst.text:=StringReplace(tekst.text,'J','',[]); tekst.text:=StringReplace(tekst.text,'K','',[]); tekst.text:=StringReplace(tekst.text,'L','',[]); tekst.text:=StringReplace(tekst.text,';','',[]); tekst.text:=StringReplace(tekst.text,#39,'',[]); // ovo je ovaj string - ' tekst.text:=StringReplace(tekst.text,'\','',[]); tekst.text:=StringReplace(tekst.text,'Z','',[]); tekst.text:=StringReplace(tekst.text,'X','',[]); tekst.text:=StringReplace(tekst.text,'C','',[]); tekst.text:=StringReplace(tekst.text,'V','',[]); tekst.text:=StringReplace(tekst.text,'B','',[]); tekst.text:=StringReplace(tekst.text,'N','',[]); tekst.text:=StringReplace(tekst.text,'M','',[]); tekst.text:=StringReplace(tekst.text,',','',[]); tekst.text:=StringReplace(tekst.text,'.','',[]); tekst.text:=StringReplace(tekst.text,'/','',[]); tekst.text:=StringReplace(tekst.text,' ','',[]); tekst.text:=StringReplace(tekst.text,'{','',[]); tekst.text:=StringReplace(tekst.text,'}','',[]); tekst.text:=StringReplace(tekst.text,':','',[]); tekst.text:=StringReplace(tekst.text,'"','',[]); tekst.text:=StringReplace(tekst.text,'|','',[]); tekst.text:=StringReplace(tekst.text,'<','',[]); tekst.text:=StringReplace(tekst.text,'>','',[]); tekst.text:=StringReplace(tekst.text,'?','',[]); tekst.text:=StringReplace(tekst.text,'`','',[]); tekst.text:=StringReplace(tekst.text,'~','',[]); tekst.text:=StringReplace(tekst.text,'!','',[]); tekst.text:=StringReplace(tekst.text,'@','',[]); tekst.text:=StringReplace(tekst.text,'#','',[]); tekst.text:=StringReplace(tekst.text,'$','',[]); tekst.text:=StringReplace(tekst.text,'%','',[]); tekst.text:=StringReplace(tekst.text,'^','',[]); tekst.text:=StringReplace(tekst.text,'&','',[]); tekst.text:=StringReplace(tekst.text,'*','',[]); tekst.text:=StringReplace(tekst.text,'(','',[]); tekst.text:=StringReplace(tekst.text,')','',[]); tekst.text:=StringReplace(tekst.text,'_','',[]); tekst.text:=StringReplace(tekst.text,'+','',[]); tekst.text:=StringReplace(tekst.text,'-','',[]); tekst.text:=StringReplace(tekst.text,'=','',[]); keybd_event( Ord(#35), MapvirtualKey( Ord(#35), 0), 0, 0 ); keybd_event( Ord(#35), MapvirtualKey( Ord(#35), 0), KEYEVENTF_KEYUP, 0 ); {www.eyesburn.co.sr}