请问两个RICHEDIT中如何保持相同状态?

johnsonrao 2002-06-29 06:03:14
今天碰到的问题,总结一下:

一个Form中有两个RichEdit;在按下Ins键时只有其中一个响应,(有焦点的那个)
请问要如何控制才能达到按一次Ins两个同时切换状态(插入/改写)

我的想法是在其中之一按INS时,将焦点转到第二个,并调用keybd_event()来模拟INS按键,但没有成功,现在一片混乱,请各位帮忙!

其中以下代码可以模拟INS按键
keybd_event(VK_Insert,MapVirtualKey(VK_INSERT,0),0,0);
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
surfguy 2002-06-30
  • 打赏
  • 举报
回复
我也学了一招
johnsonrao 2002-06-30
  • 打赏
  • 举报
回复
keybd_event(VK_Insert,MapVirtualKey(VK_INSERT,0),0,0); 也行!
来的都有分,结贴!
greencoding 2002-06-30
  • 打赏
  • 举报
回复
我也学了一招!
codingfans 2002-06-30
  • 打赏
  • 举报
回复
不明白,帮你提!
johnsonrao 2002-06-30
  • 打赏
  • 举报
回复
我试成功了!

var b1:boolean;

b1:=false;

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then
begin
if not b1 then
begin
b1:=True;
sendmessage(richedit2.handle,wm_keydown,vk_insert,0);
end;
end;
b1:=False;
end;

procedure TForm1.RichEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then
begin
if not b1 then
begin
b1:=True;
sendmessage(richedit1.handle,wm_keydown,vk_insert,0);
end;
end;
b1:=False;
end;
robinhunter 2002-06-29
  • 打赏
  • 举报
回复
procedure TForm1.RichEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then sendmessage(richedit1.handle,wm_keydown,vk_insert,0);
end;

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then sendmessage(richedit2.handle,wm_keydown,vk_insert,0);
end;
robinhunter 2002-06-29
  • 打赏
  • 举报
回复
procedure TForm1.RichEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then sendmessage(richedit1.handle,wm_keydown,vk_insert,0);
end;

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_insert then sendmessage(richedit2.handle,wm_keydown,vk_insert,0);
end;
surfguy 2002-06-29
  • 打赏
  • 举报
回复
以前有人提到一个相同的问题,我觉得可能要设个变量,比如对richedit1做了key方面的操作,倒致了insert键状态的改变,就用那个变量存起来,到richedit2.onenter时,就可以模拟按键了。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧