我试了用
PostMessage(ed.Handle,WM_KEYDOWN,VK_BACK,0);
PostMessage(ed.Handle,WM_KEYUP,VK_BACK,0);
虽然可以.但是显得略为笨拙..
还有就是退过让程序代码出错也可以不换行...但这些都是旁门左道看有没有直接的方法...求教了...
9 个解决方案
#1
Memo中回车,就是换行。改成读取其它控件内容,不符合规范。不可取。可以改成通过鼠标右键来操作。
#2
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Key:=#0;
end;
#3
不可取,这样取消了全部的回车。
#4
执行的内容放到key:=0;上面
#5
执行后把Memo的最后一个换行符删掉
#6
问题解决了吗?
#7
memo.ReadOnly := True;
只读就不换行了
只读就不换行了
#8
思路错误,你应该在FORM中判断这个回车
将FORM的keypreview属性设置为TRUE,然后在FORM的KEYPRESS事件中加入代码:
if memo1.Focused then //判断KEY是否由MEMO1处传递过来
if Key=#13 then Key:=#0 //回车不换行
将FORM的keypreview属性设置为TRUE,然后在FORM的KEYPRESS事件中加入代码:
if memo1.Focused then //判断KEY是否由MEMO1处传递过来
if Key=#13 then Key:=#0 //回车不换行
#9
2樓、8樓的方法應該都可行呀
#1
Memo中回车,就是换行。改成读取其它控件内容,不符合规范。不可取。可以改成通过鼠标右键来操作。
#2
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Key:=#0;
end;
#3
不可取,这样取消了全部的回车。
#4
执行的内容放到key:=0;上面
#5
执行后把Memo的最后一个换行符删掉
#6
问题解决了吗?
#7
memo.ReadOnly := True;
只读就不换行了
只读就不换行了
#8
思路错误,你应该在FORM中判断这个回车
将FORM的keypreview属性设置为TRUE,然后在FORM的KEYPRESS事件中加入代码:
if memo1.Focused then //判断KEY是否由MEMO1处传递过来
if Key=#13 then Key:=#0 //回车不换行
将FORM的keypreview属性设置为TRUE,然后在FORM的KEYPRESS事件中加入代码:
if memo1.Focused then //判断KEY是否由MEMO1处传递过来
if Key=#13 then Key:=#0 //回车不换行
#9
2樓、8樓的方法應該都可行呀