Форум » Clipper » Пароль под звездами в GET » Ответить

Пароль под звездами в GET

Dima: Хотел спрятать пароль под звезды. Помогли люди добрые и прислали исходничек. Все бы хорошо , вот только пока не доедешь до строки с паролем , GET с паролем остается не под звездами. Что нужно поправить ? [pre2] #include "inkey.ch" #include "getexit.ch" Local smtp:=padr("smtp.test",25) local port:=25 local pop3:=padr("pop3.test",25) local elogin:=padr("login",15) local epass:=padr("123",20) local email:=padr("tuktuk@mail.ru",25) local getlist:={} cls @ 10,22 say "Сервер исходящей почты " get smtp @ 11,22 say "Порт исходящей почты " get port picture "@Z 999" @ 12,22 say "Сервер входящей почты " get pop3 @ 13,22 say "Имя пользователя " get elogin @ 14,22 say "Пароль пользователя " get epass SEND reader := {|oget| mypsw(oGet)} @ 15,22 say "Email " get email read *************************** ? epass wait static procedure Mypsw( oget ) local nTasto local curs := SetCursor(1) static aStdKeys := {K_ENTER, K_ESC, K_UP, K_DOWN, K_TAB, K_SH_TAB, K_LEFT,; K_RIGHT, K_HOME, K_END, K_INS} if ( GetPreValidate( oGet ) ) oGet:SetFocus() oGet:cargo := oGet:VarGet() if ! Empty(oGet:cargo) oGet:buffer := Padr(repl( '*', len( RTrim(oGet:cargo) ) ),; len(oGet:cargo) ) oGet:changed := .t. oGet:pos := len( RTrim(oGet:cargo) ) + 1 oGet:display() endif do while ( oGet:exitState == GE_NOEXIT ) if ( oGet:typeOut ) oGet:exitState := GE_ENTER endif do while ( oGet:exitState == GE_NOEXIT ) nTasto := inkey(0) IF nTasto >= 32 .and. nTasto <= 255 if Set(_SET_INSERT) oGet:cargo := left(oGet:cargo, oGet:pos-1) + chr( nTasto ) +; Substr(oGet:cargo, oGet:pos, len(oGet:cargo) - oGet:pos) else oGet:cargo := left(oGet:cargo, oGet:pos-1) + chr( nTasto ) +; Substr(oGet:cargo, oGet:pos+1, len(oGet:cargo) - oGet:pos) endif GetApplyKey( oGet, asc( "*" ) ) elseif nTasto == K_DEL oGet:cargo := left( oGet:cargo, oGet:pos-1) +; Substr(oGet:cargo, oGet:pos+1, len( oGet:cargo ) - oGet:pos ) + ' ' GetApplyKey( oGet, nTasto ) elseif nTasto == K_BS .and. oGet:pos > 1 oGet:cargo := left( oGet:cargo, oGet:pos-2) +; Substr(oGet:cargo, oGet:pos, len( oGet:cargo ) - oGet:pos + 1 ) + ' ' GetApplyKey( oGet, nTasto ) elseif ASCAN(aStdKeys, nTasto) # 0 GetApplyKey( oGet, nTasto ) endif enddo if ( !GetPostValidate( oGet ) ) oGet:exitState := GE_NOEXIT endif enddo oGet:KillFocus() endif if oGet:exitState != GE_ESCAPE .and. oGet:cargo # oGet:original oGet:varPut( Padr(oGet:cargo, len(oGet:varGet())) ) endif SetCursor( curs ) return [/pre2]

Ответов - 3

Pasha: Dima пишет: @ 14,22 say "Пароль пользователя " get epass SEND reader := {|oget| mypsw(oGet)} После этой строки надо добавить: ATail(GetList):display()

Dima: Pasha пишет: После этой строки надо добавить: ATail(GetList):display() Неа не помогло. Сделал пока вот так. [pre2] @ 10,22 say "Сервер исходящей почты " get smtp when aster(Getlist[5]) @ 11,22 say "Порт исходящей почты " get port picture "@Z 999" @ 12,22 say "Сервер входящей почты " get pop3 @ 13,22 say "Имя пользователя " get elogin @ 14,22 say "Пароль пользователя " get epass SEND reader := {|oget| mypsw(oGet)} @ 15,22 say "Email " get email Func aster(og) @ og:row(),og:col() say repl("*",len(alltrim(og:varget()))) color "n/w" return .t. [/pre2]

wad1: А зачем считывать пароль перед вводом? Его нужно вводить. У меня он пустой сначала, и проблем нет.




полная версия страницы