我现在在做一个模拟计算机的软件,显示用memo控件,键盘用button控件。现在有两个问题请教各位:
1.如何使光标一直在memo中显示,我在运行时,刚开始光标在memo中,可是一单击模拟键盘的button,memo中的光标就看不见了。
2.如何得到光标在么memo中的位置,我是想在单击模拟键盘的方向健,光标可以象按键盘的方向健一样,上下左右移动,而且可以在光标的位置插入文字。
1.如何使光标一直在memo中显示,我在运行时,刚开始光标在memo中,可是一单击模拟键盘的button,memo中的光标就看不见了。
2.如何得到光标在么memo中的位置,我是想在单击模拟键盘的方向健,光标可以象按键盘的方向健一样,上下左右移动,而且可以在光标的位置插入文字。
2、很麻烦,好象需要一些api来处理插字符
2, VK_LEFT = 37;
{$EXTERNALSYM VK_UP}
VK_UP = 38;
{$EXTERNALSYM VK_RIGHT}
VK_RIGHT = 39;
{$EXTERNALSYM VK_DOWN}
VK_DOWN = 40;
你只要在你的BUTTON中ONCLICK写上;
keybd_event(vk_UP,0,KEYEVENTF_KEYUP,0)就可以了模拟向MEMO发送小箭头的按键
begin
memo1.SetFocus ;
keybd_event(VK_DOWN,0,KEYEVENTF_EXTENDEDKEY,0);
end;
刚才错了;SORRY;
我同意“天外流星”的思路,但是我想提出不用的想法!他的代码可以相应的应用,就是在keyup的事件时候memo1.setfocus,也就是说无论你的键盘事件是敲击的哪个位置都能回到memo中,因为如果别人动了鼠标之后焦点既不在button上也不在memo的时候,光标就回不去了!当然!要排出你的方向键!
问题二,使用API函数SetCaretPos(x, y)来设置光标坐标位置。
str:array [0..1000] of string;在窗体显示时
for i:=1 to 1000 do
begin
str[i]:='';
memo1.lines.add(str[i]);
end;1000如果太大就用richedit