当前位置:主页>仓库管理软件> 列表

程序运行后,在控件Memo中输入多行信息,此时,想单击一下

进销存管理软件版1楼: 程序运行后,在控件Memo中输入多行信息,此时,想单击一下按钮,就能让Memo返回到第一行的信息,请问如何实现呢??

2楼: memo.lines.text :=memo.lines.string[0];下载管家婆财务软件

3楼: Memo1.SetFocus ;
Memo1.SelStart:= 0 ;

我试过了,可以的

4楼: to ahhlian:
我试了不行啊!

5楼: to huiyue:
你提供的方案,我试了不行。

6楼: 今天手气不好,两个问题都没搞定,思路是利用Ctrl + home快捷键

Vk_Control 和 VK_Home

SendMessage WM_KeyDown

或者是利用WM_HScroll

最后只有利用Key_Event了

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.SetFocus;
keybd_event( VK_Control, MapVirtualKey(VK_Control, 0 ), 0 , 0 ); //Control key down
keybd_event( VK_HOME, MapVirtualKey(VK_Down, 0 ),KEYEVENTF_EXTENDEDKEY, 0 ); // down arrow key down
keybd_event( VK_Control, MapVirtualKey(VK_Control, 0 ), KEYEVENTF_KEYUP , 0 ); //Control arrow key up
keybd_event( VK_HOME, MapVirtualKey(VK_Down, 0 ), KEYEVENTF_KEYUP , 0 ); //Down key up
end;

搞定,网上转的东西,改了一下

进销存管理软件版7楼: 本人在开发中积累的memo技巧: 测试通过
1、要使memo向下翻页 sendmessage(memo1.handle,wm_vscroll,SB_PAGEDOWN,0);

2、使memo有滚动条 属性 scrollbars:=ssboth

3、如何使memo达到最后一页 SetScrollPos(memo1.Handle,SB_VERT,99999,true);
SetScrollPos(memo1.Handle,SB_HORZ,99999,true);

4、如何使memo向上翻页 SendMessage(Memo1.Handle,WM_VSCROLL, SB_PAGEUP,0) ;

5、如何使memo 回到第一页 memo1.Perform(EM_SCROLLCARET, 0, 0 );

6、如何使光标下移 SendMessage(Memo1.Handle,WM_KeyDown,VK_DOWN,MapVirtualKey(40,0));

7、如何使光标移动到最后一行
memo1.Lines.Move(0,memo1.Lines.Count);
Memo1.SelStart := length(Memo1.Text);
memo1.SetFocus;

8、得到memo当前光标行列:
procedure TForm1.Button1Click(Sender: TObject);
var
a:tpoint;
begin
a:=Memo1.CaretPos ;
edit1.Text :=inttostr(a.x );
edit2.Text :=inttostr(a.y );
end;


9、我在COM中动态创建一个Memo控件,我如何将其显示到调用COM的主窗体的一个PANEL上,并且Memo能够指定align
with TMemo.Create(Panel1) do begin
Parent := Panel1;
align := alClient;
Show;
end;

8楼: 十分感谢~!