(求救)最近做短信平台遇到一个问题 ( 积分: 5 )

  • 主题发起人 主题发起人 cf83325
  • 开始时间 开始时间
C

cf83325

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了显示统计字符的功能,大家都知道发短信的时候有字数限制。我代码如下

function Jisuan(str:string):Integer;
var
i :Integer;
str1:string;
begin
str1:=str;
i:=Length(str);
Send.Memo2.MaxLength:=69;

if (69-i)= -1 then
begin
Send.Memo2.ReadOnly:=True;
// Exit;
end
else
Result:=69-i;
Send.Memo2.ReadOnly:=False;
end;

procedure TSend.Memo2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i :Byte;
ans:AnsiString;
wis:WideString;
// ans:AnsiString;
begin
ans :=Memo2.Text;
wis:=WideString(ans);
i:=Jisuan(wis);
lbl1.Caption:=IntToStr(i);
end;
当然要求肯定短信内容的字数有限制,即中英文,空格,及各种符号混合在一起加起来也必须是70个子。于是我用该用widestring.
function JiSuan(str:WideString):Byte;
var
i,j :Byte;
str1,str2 :WideString;
begin
str1 :=str;
i :=Length(str1);
j:=Send.Memo2.MaxLength;
j:=69;
if (69-i)= -1 then
begin
Send.Memo2.ReadOnly:=True;
Exit;
end else
Result :=69-i;
Send.Memo2.ReadOnly:=False;
end;

这个时候Send.Memo2.ReadOnly:=True;语句并没有执行,这样用户仍然可输入。后来发现
memo.maxlength到底什么什么类型啊。郁闷啊。请高人指点啊。。。
 
呵呵,又看到这样的问题了!
 
知道的人,请给我个回答撒。再次谢谢各位了
 
memo.maxlength 当然是整型integer

这句这样写:
if (69-i)<0 then
 
这里的Memo2.MaxLength没有什么意义。
 
小赵所言即是。这里的Memo2.MaxLength确实太没有意义了。。我发现了问题的所在了。。
谢谢各位的指点.。小弟在此谢过了。。。
 
多人接受答案了。
 
后退
顶部