DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: KfnqDuxw
今日帖子: 41
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 snakewu (ss) ★☆☆☆☆ -
普通会员
2004/5/9 0:45:04
标题:
清空Memo.Lines,仍然出现问题? 浏览:1127
加入我的收藏
楼主: 是这样子的,Form1上面有一个按钮,一个TMemo,初始化按钮是不可用,当TMemo里面有输入值时,按钮可用,并且将内容赋给一个全局变量TStrings;当TMemo无内容或者将原输入的内容清除后,按钮变为不可用;关闭主窗口,如果TStrings有内容,那末会showmessage,否则,直接关闭。
问题就在于:程序一运行,当在TMemo输入内容,按钮可用,但是当将原输入内容擦去以后,按钮仍旧可用。。。。。。。。而且在这种情况下,当关闭主窗口也会有消息框出现(其实TMemo里面没有内容),我也试过在主窗口关闭以后使用TSaveDialog保存文件,发现保存的文本确实没有东西,这到底是怎摸回事???
我是在TMemo的OnKeyPress或者OnChange事件里面写的,有什莫其他问题存在吗??
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
作者:
男 restboy (枫☆白水煮大虾) ★☆☆☆☆ -
盒子活跃会员
2004/5/9 1:31:21
1楼: if (memo1.Lines.Count = 0) then Cleared:=true else Cleared:=false;
可以放在OnChange里面,然后用
if cleared then...else ....;做你希望的操作~cleared可以按照你的要求定义为全局变量或者局部变量。是这个吗?
----------------------------------------------
夫君子之行,静以修身,俭以养德.非澹泊无以明志, 
非宁静无以致远.夫学须静也,才须学也,非学无以广才,
非志无以成学,淫漫则不能励精,险躁则不能治性,年与时驰, 
意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/5/9 7:53:32
2楼: procedure TForm1.Memo1Change(Sender: TObject);
begin
  Button1.Enabled := Memo1.Lines.Text <> '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // if Memo1.Lines.Text <> '' then
  AnotherStrings.Assign(Memo1.Lines);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1Change(Memo1);
end;
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 snakewu (ss) ★☆☆☆☆ -
普通会员
2004/5/9 17:18:23
3楼: 这是我的代码:
procedure TForm1.Memo1Change(Sender: TObject);
begin
  if Memo1.Lines = '' then
  begin
    Button1.Enabled := False;
    ss := nil;                    //ss是一个TStrings的实例
        end
  else
    Button1.Enabled := True;
    ss := Memo1.Lines;         
end; 

end.
就会发生像我上面说的情况了(即Memo1里面无内容,程序关闭还是会提示消息框,并且Button1仍旧可用),不知道所以然了。。。。。。。。。。。。。。。
请问sephil,您的Memo1.Lines.Text和Memo1.Lines.Text有什莫大区别?
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
作者:
男 snakewu (ss) ★☆☆☆☆ -
普通会员
2004/5/9 21:27:36
4楼: 我解决了Enabled的问题,但是我使用Memo1.Lines<>nil then的话确实存在问题,sephil,Memo1.Lines<>nil和Memo1.Lines.Text存在什莫大区别吗??
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/5/9 23:24:06
5楼: 你看VCL的源代码就知道了
当你访问(Read)Memo1.Lines这个属性的时候,即使Lines不存在Delphi也会建立一个的,所以这个等式是恒成立的Memo1.Lines.Text <> ''则是可以的
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS