DELPHI中如何翻页

zyp1804 2009-11-14 08:41:11
我在MEMO中动态产生了组件,但数目较多,想用BUTTON产生翻页的功能,类似PAGEUP,PAGEDOWN,请各位大佬赐教
...全文
573 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiancanyue 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 de410 的回复:]
    //上页:
    sendmessage(memo1.handle, wm_keydown, VK_PRIOR, -1);
    sendmessage(memo1.handle, wm_keyup, VK_PRIOR, -1);

  //下页:
    sendmessage(memo1.handle, wm_keydown, VK_NEXT, -1);
    sendmessage(memo1.handle, wm_keyup, VK_NEXT, -1);
[/Quote]貌似
zyp1804 2009-11-16
  • 打赏
  • 举报
回复
HJKTO
这是程序中排列的一部分,仅供参考
f3_di2:=table2.RecordCount ;
f3_di4:=0;
f3_di3:=0;
f3_di5:=1;
for f3_di2:=1 to table2.RecordCount do
begin
f3_bt1:=tpanel.Create(self);
f3_bt1.Parent:=scrollbox1;
f3_bt1.Top:=20+f3_di5;
//f3_bt1.Top:=0+110*f3_di4;
f3_bt1.Left:=15+f3_di3*110;
//f3_bt1.Left:=15+f3_di6;
if f3_bt1.Left>=440 then
begin
f3_di3:=-1;
f3_di4:=f3_di4+1;
f3_di5:=10*f3_di4+f3_di4*100;
f3_di6:=10*f3_di3+f3_di4*100;
end;
f3_bt1.Height:=100;
f3_bt1.Width:=100;
f3_bt1.Caption:=table2.fieldbyname('sp_name').AsString ;
f3_bt1.Show ;
table2.Next;
f3_di3:=f3_di3+1;
hjkto 2009-11-14
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
begin
比如在这里动态创建30个panel,应该怎么写呀?
end;
hjkto 2009-11-14
  • 打赏
  • 举报
回复
楼主能不能把你的代码贴出来看看

我学习一下怎么动态生成30个panel
不得闲 2009-11-14
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
if scrollbox1.VertScrollBar.Range - scrollbox1.VertScrollBar.Position + 20 = scrollbox1.Height then
button1.Enabled:= false
else
button2.Enabled:= true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
if scrollbox1.VertScrollBar.Position = 0 then
button2.Enabled:= false
else
begin
button1.Enabled:= true;
end;
end;
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
suijunonghen:
可以用SCROLLBOX,用BUTTON翻页如何搞,望赐教
不得闲 2009-11-14
  • 打赏
  • 举报
回复
晕,你用ScrollBox嘛!干嘛非要搞个Memo在那里搞
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
有没有其它方法
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
DE410:
可能是的,界面上体现的是30个PANEL在MEMO1上显示,但其实质还不正确清楚,就类似触摸屏POS机的点菜功能
shadowstar 2009-11-14
  • 打赏
  • 举报
回复
那样Panel当然不会动

别指望了,想别的办法吧。
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
DE410:
在MEMO1中写入数据中可行的,但我是用动态生成组件在MEMO中,f3_bt1.Parent:=memo1;f3_bt1是TPANEL
用你的方法没反应
de410 2009-11-14
  • 打赏
  • 举报
回复
你的意思是panel嵌入到meno中?
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
DE410,我在MEMO1中动态加入了30个PANEL,MEMO.SCOLLBARS:=SSBOTH,在BUTTON.CLICK事件中加入
//上页:
sendmessage(memo1.handle, wm_keydown, VK_PRIOR, -1);
sendmessage(memo1.handle, wm_keyup, VK_PRIOR, -1);

//下页:
sendmessage(memo1.handle, wm_keydown, VK_NEXT, -1);
sendmessage(memo1.handle, wm_keyup, VK_NEXT, -1);
可就没反应,是否还有别的设置.
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
DE410,我在MEMO1中动态加入了30个PANEL,MEMO.SCOLLBARS:=SSBOTH,在BUTTON.CLICK事件中加入
//上页:
sendmessage(memo1.handle, wm_keydown, VK_PRIOR, -1);
sendmessage(memo1.handle, wm_keyup, VK_PRIOR, -1);

//下页:
sendmessage(memo1.handle, wm_keydown, VK_NEXT, -1);
sendmessage(memo1.handle, wm_keyup, VK_NEXT, -1);
可就没反应,是否还有别的设置.
de410 2009-11-14
  • 打赏
  • 举报
回复
我的意思是你的memo1中可有内容,是空的吗?
以下是全部代码了~~我这边测试OK~~
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(memo1.handle, wm_keydown, VK_PRIOR, -1);
sendmessage(memo1.handle, wm_keyup, VK_PRIOR, -1);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
sendmessage(memo1.handle, wm_keydown, VK_NEXT, -1);
sendmessage(memo1.handle, wm_keyup, VK_NEXT, -1);
end;

end.
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
de410,能否具体点,THANKYOU
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
de410,能否具体点,THANKYOU
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
de410,能否具体点,THANKYOU
de410 2009-11-14
  • 打赏
  • 举报
回复
我这边测试OK啊~~你的memo1中可有数据啊~~~你放多一点数据测试~~
zyp1804 2009-11-14
  • 打赏
  • 举报
回复
de410,没反应?
加载更多回复(7)

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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