想让DEMO里的字,一个一个出现1。两个DEMO,DEMO1隐藏,DEMO2的数据逐渐从DEMO1里取出来,通过时间控件
---
代码如下:procedure TForm1.Timer1Timer(Sender: TObject);
var SI: TScrollInfo;
beginmemo2.Lines.Text:=copy(memo1.Text,1,i);
i:=i+1;
//把DEMO1的数据一个个取出 SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;
GetScrollInfo(MEMO2.Handle, SB_VERT, SI);
SetScrollPos(memo2.Handle,1,si.nMax,true);
//当一页满了之后,设置 MEMO2的滚动条,到最下面
end;
-------------------
问题:
现在的功能都能实现了,只欠一个
就是一页满了之后,页面还是不会滚下来,设置了滚动条的SetScrollPos(memo2.Handle,1,si.nMax,true);
只是滚动条确实会下来了,但实际页面,还是第一页的使滚动条到最下面的,还有一种方法
memo2.Perform(EM_SCROLLCARET, 0, 0 );不过都是滚动条下来了,但页面还是没下来,还在第一页
----------
请教各位有什么做法???
---
代码如下:procedure TForm1.Timer1Timer(Sender: TObject);
var SI: TScrollInfo;
beginmemo2.Lines.Text:=copy(memo1.Text,1,i);
i:=i+1;
//把DEMO1的数据一个个取出 SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;
GetScrollInfo(MEMO2.Handle, SB_VERT, SI);
SetScrollPos(memo2.Handle,1,si.nMax,true);
//当一页满了之后,设置 MEMO2的滚动条,到最下面
end;
-------------------
问题:
现在的功能都能实现了,只欠一个
就是一页满了之后,页面还是不会滚下来,设置了滚动条的SetScrollPos(memo2.Handle,1,si.nMax,true);
只是滚动条确实会下来了,但实际页面,还是第一页的使滚动条到最下面的,还有一种方法
memo2.Perform(EM_SCROLLCARET, 0, 0 );不过都是滚动条下来了,但页面还是没下来,还在第一页
----------
请教各位有什么做法???
解决方案 »
- Delphi如何判断当前用户是在安全模式下还是在正常模式下运行?
- 这道题真有这么难吗?300分求答!! richedit1中的图片传到richedit2里为什么是二进制流啊咋不是图片呢?
- 使用select * into temp FROM OpenDataSource进行数据导入出现的问题
- Delphi8 update2已经推出,修正了n多bug
- delphi中提示A class named TfrxDMPPage already exists该如何解决
- delphi怎样捕获客户端的屏幕?????(高分相送)
- intraweb中iwlink的使用
- csdn怎么搞的,不是说每天加多少可用分吗,怎么我的几天了都没有加?
- 如何使用这个报表控件??????????
- 如何从物理上切断拨号网络
- 如何安装tdbf控件啊,100分!
- 如何做一个类似与微软的explorer.exe程序呢,大侠们请帮忙。
procedure TForm1.Timer1Timer(Sender: TObject);
var SI: TScrollInfo;
beginmemo2.Lines.Text:=copy(memo1.Text,1,i);
i:=i+1;
//把DEMO1的数据一个个取出 SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;
GetScrollInfo(MEMO2.Handle, SB_VERT, SI);
SetScrollPos(memo2.Handle,1,si.nMax,true);
//当一页满了之后,设置 MEMO2的滚动条,到最下面
SendMessage(Memo2.Handle,WM_KEYDOWN,VK_NEXT,0);//<--添加這句;
end;
加
SendMessage(Memo2.Handle,WM_KEYDOWN,VK_NEXT,0);//
之后,可以滚动一半了,前半页的能滚上去,但到中间的时候,就又停在那了知道什么原因吗???
你的可能是MEMO1里的数据太少,你放多点数据就不行了前半部分是可以的,数据多一点就不行了
SendMessage(Memo2.Handle,WM_KEYDOWN,VK_NEXT,0);//这个的功能可能是相当于点一下 下面的滚动条,点一下,当然只能下去一点
内容太多,滚动条太长的时候,是需要点很多次的才能到最下面有没有直接到最下面的??本来
SetScrollPos(memo1.Handle,1,si.nMax,true);
就是到最下面的
不过用在TIMER控件里就不太行了
還是可以滾到底部哦
麻烦你把~
你的这个发给我看一下行吗??
整个压缩发给我[email protected]
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
Timer1: TTimer;
Memo1: TMemo;
RichEdit1: TRichEdit;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:Integer;
implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
begin
RichEdit1.Text:=copy(memo1.Text,1,i);
i:=i+1;
SendMessage(RichEdit1.Handle,WM_KEYDOWN,VK_NEXT,0);
end;end.
原来是MEMO的问题
怪不得好的
就用RICHEDIT 试谢谢你,你真热心
用RICHEDIT就行了语句都一样的
为什么DEMO不行??什么道理???