VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 969|回复: 8

菜鸟问题,求教!老手新手都来看看呀

[复制链接]

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-21 18:30:01 | 显示全部楼层 |阅读模式
procedure Tlogin.OKButtonClick(Sender: TObject);
var
  str1,str2: String;
begin
  if (nameComboBox.Text = '') then
    Showmessage('请输入用户ID!')
  else
  begin
    str2 := 'select psw from login where uid = ' + nameComboBox.Text + '';
    ADODataSet1.Close;
    ADODataSet1.CommandText := str2;
    ADODataSet1.Open;
    str1 :=  VarToStrDef(ADODataSet1['psw'],'*');//这样赋值又错吗???
    if (pswEdit.Text <> str1) then            //这样比较不对吗???
      begin
        Showmessage('密码错误! '+ str1) ;//这里STR1明明显示的是正确密码
                                          //为什么上面比较老是说不正确
      end
    else
      begin
        Showmessage('输入正确!');
        loged := true;
        login.Close;
        main.Show;
      end;
  end;
  PswEdit.Text := '';
end;
回复

使用道具 举报

0

主题

17

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-6-29 13:15:01 | 显示全部楼层
有空格比较时就会执行Showmessage
加个trim()
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-30 14:00:01 | 显示全部楼层
问题是不管输入是否正确都是执行 Showmessage('密码错误! '+ str1) 的啊
比如pswEdit中输入的是aa而VarToStrDef(ADODataSet1['psw'],'*')中得到的也是aa,为什么比较会不等呢,麻烦能具体说下吗,新手啊=。=
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-7-5 17:30:01 | 显示全部楼层
trim(pswEdit.Text) <> trim(str1) 试一试
回复

使用道具 举报

1

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-7-16 13:30:01 | 显示全部楼层
把两个字符串的长度都显示出来看看,是否有隐藏的字符。
回复

使用道具 举报

0

主题

25

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-7-16 14:30:02 | 显示全部楼层
这样试试看

......
  if UpperCase(pswEdit.Text) <> UpperCase(str1) then

......
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-16 16:45:01 | 显示全部楼层
哇,好心人真多不管怎么样,谢谢先~~~
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-16 20:15:01 | 显示全部楼层
supperman 你的是对的,谢谢啦
不过

function UpperCase(const S: string): string;
var
  Ch: Char;
  L: Integer;
  Source, Dest: PChar;
begin
  L := Length(S);
  SetLength(Result, L);
  Source := Pointer(S);
  Dest := Pointer(Result);
  while L <> 0 do
  begin
    Ch := Source^;
    if (Ch >= 'a') and (Ch <= 'z') then Dec(Ch, 32);
    Dest^ := Ch;
    Inc(Source);
    Inc(Dest);
    Dec(L);
  end;
end;

看不太懂。。。。麻烦再指点指点,比较菜吧=。=
回复

使用道具 举报

0

主题

3

帖子

252.00

积分

中级会员

Rank: 3Rank: 3

积分
252.00
发表于 2020-7-18 14:14:04 | 显示全部楼层
提示你哪错误了~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表