用Delphi做了一个用户登录的界面,然后又设置了一个修改密码的按钮,可是自己弄了半天,总是不能修改成功,这该怎么办呢?

解决方案 »

  1.   

    Show your codes,OK?找工作,杭州或上海:
    http://community.csdn.net/Expert/topic/4905/4905072.xml
      

  2.   

    我的代码是这样的: 
    下面是form1中的代码,form1是登录界面,其中用户名从edit1.text输入,密码从edit2.text输入,button1为确定按钮,button2为取消按钮,button3为修改密码按钮,代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      var1:=Edit1.Text;
      var2:=Edit2.Text;  if(var1='')and (var2='')then
        ShowMessage('请输入用户名和密码!')
      else if(var1<>'')and(var2='')then
        ShowMessage('请输入密码!')
      else if(var1='')and(var2<>'')then
        ShowMessage('请输入用户名!')
      else if(var1='zll')and(var2='123456')then
        form2.show
      else
        ShowMessage('用户名与密码不对,请重新输入!');end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      var1:='';
      var2:='';
      close;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      form3.show;
      var2:=var4;
    end;form2是登陆成功后要进入的界面,form3是修改密码窗口,form3中旧密码从edit1.text输入,新密码从edit2.text输入,button1为确定按钮,button2为取消按钮,代码如下:
    procedure TForm3.Button1Click(Sender: TObject);
    begin
      var3:=Edit1.Text;
      var4:=Edit2.Text;  if(var3=form1.Edit2.Text)then
        ShowMessage('密码修改成功!')
      else
        ShowMessage('旧密码不对,请重新输入!');
        //var2:=var4;end;procedure TForm3.Button2Click(Sender: TObject);
    begin
      var3:='';
      var4:='';
      close;
    end;我在这里谢谢大家的帮忙了!
      

  3.   

    procedure TForm1.btn1Click(Sender: TObject);
    begin
    qry1.SQL.Text:='select psw1 from pswt where name1 = '''+edit1.Text+''' ';
    qry1.Open;
    if qry1.RecordCount<>0 then
    begin
      if qry1.FieldByName('psw1').AsString=edt1.Text then
      begin
      qry2.SQL.Text:='update pswt set psw1 = '''+edt2.Text+'''';
      qry2.ExecSQL;
      end;
    end;
    showmessage('更改密码成功');
    end;
      

  4.   

    大侠,您说的这种方法是改数据库的密码的吧?我请教的问题是只简简单单的一个修改密码,没有涉及数据库,不用调用query控件吧?小妹愚钝,请大侠再指点一下,谢谢!
      

  5.   

    我是想能在界面上修改密码,就是在.exe里就能修改成功,不是在程序里修改这个全局变量,大哥能否帮忙看看我的代码那里不对给指证一下错误?
      

  6.   

    procedure TForm1.Button3Click(Sender: TObject);
    begin
      form3.show;
    //  var2:=var4;
    end;
      var2:=var4;(这个不要)
     if(var3=form1.Edit2.Text)then
        begin
        ShowMessage('密码修改成功!');
    var2=var4;
    end还有
    else if(var1='zll')and(var2='123456')then
        form2.show
      else
        ShowMessage('用户名与密码不对,请重新输入!');
    这个判断完全错误,你已经把var2定死了
      else
        ShowMessage('旧密码不对,请重新输入!');
      

  7.   

    先谢谢wonfon()了,还得请问
    else if(var1='zll')and(var2='123456')then
        form2.show
      else
        ShowMessage('用户名与密码不对,请重新输入!');
    这一段把密码定死了的代码该怎样改呢?
      

  8.   

    你已经把VAR2的值定死了
    就算前面提示你修改成功
    但是这里也会说('用户名与密码不对,请重新输入!');的
      

  9.   

    是啊,确实是这样的,可是怎样才能不把var2定死呢,我也试着修改把
    else if(var1='zll')and(var2='123456')then 里面的var2='123456'改为var2=temp,把temp定义为一个变量,可是temp还是要赋值的,要不怎么进入系统,所以给temp赋值后,var2又成死的了啊,请大哥你好人做到底,送佛上西天,你就帮我改改吧!非常感谢呀!
      

  10.   

    给你个DEMO嘛
    FORM1的代码
    var
      Form1: TForm1;
      UserName,PassWord:string;
    implementationuses Unit2, Unit3;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
    if (form1.Edit1.Text=UserName) and (form1.Edit2.Text=PassWord) then
    form3.show else
    ShowMessage('用户名或密码错误');
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    UserName:='zll';
    PassWord:='123456';
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    form3.show;
    end;FORM3的代码
    procedure TForm3.Button1Click(Sender: TObject);
    begin
    if form1.Edit2.Text=form3.Edit1.Text then
    begin
    PassWord:=form3.Edit2.Text;
    ShowMessage('修改成功');
    end else
    ShowMessage('原密码错误');
    end;
      

  11.   

    多谢大哥!已经成功修改密码了!小妹初学Delphi,以后肯定还会遇到很多问题,希望大哥能多多帮助!谢谢!祝永远健康幸福!
      

  12.   

    谢谢,还有一个问题,呵呵,不是专业技术问题,而是我这个问题怎样结束呢?我想给分者怎么给呀?想把它列成已解决问题,该怎样操作呢?每一个恢复右下角的top是什么意思呀?是给分的吗?怎么我点了一下毫无改变呢?
      

  13.   

    大侠,不好意思,又打扰你了,我按照你说的方法确实能把密码改正了,但是还是存在问题,就是工程运行以后修改完了密码,如果不关闭运行的工程,那么修改后的密码起作用,但是一旦把运行的工程关闭了,再次运行工程时,进入系统的密码仍然是123456,也就是说以前改的又不起作用了,原因我已经找出来了,就是因为
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    UserName:='zll';
    PassWord:='123456';
    end;
    这一段代码说明,只要一运行form1,密码就重新为123456,那么我想每次修改完密码以后,关闭工程再次打开时,有效的密码是修改后的那一个,这该怎么做呢?谢谢!请多多帮忙