3CS及各位做过KTV系统的高手请进,我在找一个数据控制控件,是用来显示歌曲供用户选择的,像DBCtrlGrid那样可以限制显示多少条记录,可以翻页,背景透明,

  • 主题发起人 主题发起人 poppy
  • 开始时间 开始时间
P

poppy

Unregistered / Unconfirmed
GUEST, unregistred user!
3CS及各位做过KTV系统的高手请进,我在找一个数据控制控件,是用来显示歌曲供用户选择的,像DBCtrlGrid那样可以限制显示多少条记录,可以翻页,背景透明,做过KTV系统的应该知道我说的是什么的(200分)<br />请各位指点我该使用哪个控件,谢谢
poppy.boy@163.com
 
如果你要分页显示歌曲,最好不要用数据绑定控件,用TMS-advgrid就可以(当然还可以用别的)。
至于分页那得用数据控件控制,比如:
AdoQuery1.recordset.pagesize:=10;
AdoQuery1.recordset.AbsolutePage:=1;(1....pagecount)//指定页数
然后一条一条数据的往表格里填就可以了。
 
TMS-advgrid中好像没有背景透明的,非往它的Background中图片,这样有点麻烦,可以推荐其它
控件吗?
 
to: poppy
我是用DELPHI中最常用的TLABEL和数据連接显示的,当然我的LABEL是动态生成的,一次
生成6个,对应6条歌曲名称,这是一页。下一页显示之前,我会把前面动态生成的6个LABEL,
FREE掉。然后再生6个LABEL,对应接下来的6个歌曲名称,就这样周而复始....
我想你应知,LABEL控件是可以透明的。
 
TO:3cs
一个好方法
to:All
大家都来讲讲,看有没有更好的建议
 
private
{ Private declarations }
lb: array[1..6] of Tlabel;
procedure song_up;

....

这是我向上翻页的源码:

procedure tsonglistform.song_up;
var
num,n:integer;
begin

try
if vod_data.songlistk.Locate('itemno',pagebz,[]) then


if pagenum>1 then

begin

with vod_datado

begin

if pagenum=pagecount then

songlistk.MoveBy(-i-5)
else

songlistk.MoveBy(-i-6);
pagenum:=pagenum-1;
page_n.Caption:=inttostr(pagenum)
m:=1;
//以下程序将释放所占用的内存
while m<=ido

begin

lb[m].free;
m:=m+1;
end;

n:=1;
//初始化
num:=0;
//以下程序将自动生成歌名
while n<=6do

begin


lb[n]:=Tlabel.Create(self);
//生成歌名
lb[n].parent:=songlistform;
//得到父窗体
lb[n].Transparent:=true;
lb[n].top:=11+num*46;
lb[n].left:=185;
lb[n].Font.Name:='宋体';
lb[n].Font.Color:=qj_4;
lb[n].Font.Size:=23;
lb[n].Alignment:=tacenter;
if zt='歌星' then

begin

lb[n].Caption:=songlistk.fieldbyname('name').asstring;
end
else

begin

lb[n].Caption:=songlistk.fieldbyname('name').asstring+'--'+'['+songlistk.fieldbyname('singer').asstring+']';
end;


songlistk.next;
if songlistk.Eof then

begin

i:=n;//循环的累计数赋给变量 i
break;
end;

i:=n;
n:=n+1;
num:=num+1;
end;

pagebz:=songlistk.fieldbyname('itemno').asstring;
end;

//with
 
多人接受答案了。
 
后退
顶部