400求助一个简单列表框的源码!

qq_17281823 2020-02-16 09:51:51
要求用Timage和它的Canvas属性做个简单的列表框(只要显示功能),写出多行字,当内容超过Timage的高度时可以用滚动条浏览全部的内容,功能部分(就是写字部分,就写数字吧简单点)以类的方式写在另一个单元,(我不知道是不是该叫继承Canvas,主要方便自己以后功能扩展),最好滚动条的控制代码也写在里面,调用 这个类的可以把Timage当做参数传进入(因为有可能要在其它有Canvas属性的控件使用这个类)但是滚动条的源码只要支持Timage就行了,要求代码尽量严谨,因为我是初学,希望有个正确的开始.谢谢大家
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ron_xin 2020-02-20
  • 打赏
  • 举报
回复
参考代码

procedure TFrmMain.CanvasScroll_Adv(LedNo: Integer);
//暂停时显示Scroll文字
var
  TxtWidth :Integer;
  bmp:tbitmap;
  Msg_Scroll :string;
  tempini:TIniFile;
begin
  tempIni := TIniFile.Create(extractfilepath(ParamStr(0))+'TicketLed.ini');
  Msg_Scroll :=tempIni.ReadString('Window'+inttostr(LedNo+1), 'Msg_Scroll','欢迎光临蛇口邮轮中心!');
  tempIni.Free;

  bmp:=Tbitmap.Create;
  bmp.Width :=LedInfo[LedNo].Width-1;
  bmp.Height :=21;
  bmp.Canvas.Brush.Color:=clBlue;//clWebPurple; //设置颜色
  bmp.Canvas.FillRect(bmp.Canvas.ClipRect); //往矩形中填充颜色
  bmp.Canvas.Font.Name:='隶书';
  bmp.Canvas.Font.Height:=20;
  bmp.Canvas.font.color:=clWhite;
  TxtWidth :=bmp.Canvas.TextWidth(Msg_Scroll);
  bmp.Canvas.TextOut(LedInfo[LedNo].Scroll_Xtmp,0,Msg_Scroll);

  imgStripLED.Canvas.Draw(LedInfo[LedNo].Scroll_X,LedInfo[LedNo].Scroll_Y+10,BMP);

  if LedInfo[LedNo].Scroll_Xtmp<=-TxtWidth then
  begin
    LedInfo[LedNo].Scroll_Xtmp :=LedInfo[LedNo].Width;
  end;

  LedInfo[LedNo].Scroll_Xtmp :=LedInfo[LedNo].Scroll_Xtmp-1;

  bmp.Free;
end;
放定时器去执行

procedure TFrmMain.tmrCanvasScrollTimer(Sender: TObject);
var
  i :Integer;
begin
  for i := 0 to 19 do
  begin
    CanvasScroll_Adv(i);
//    case LedInfo[i].ServerType of
//      0,2:CanvasScroll_Adv(i);
//    end;
  end;
qq_17281823 2020-02-17
  • 打赏
  • 举报
回复
可能我没讲明白,我想学的是实现这样一个功能类的方法,Timage怎样用代码实现和滚动条联动,TCancas继承然后加自己的方法(加一个写多行字的方法,方便测试滚动条)
  • 打赏
  • 举报
回复
列表框透明,放在TImage前面就可以了
  • 打赏
  • 举报
回复
引用 3 楼 qq_17281823 的回复:
可能我没讲明白,我想学的是实现这样一个功能类的方法,Timage怎样用代码实现和滚动条联动,TCancas继承然后加自己的方法(加一个写多行字的方法,方便测试滚动条)


设计方向错误,TCanvas本身不可视,要滚动干嘛?滚动可视组件,只需要把它放在滚动控制(比如TScrollBox)里,你的设计耦合度高,复用率低。
Frank.WU 2020-02-17
  • 打赏
  • 举报
回复
用 Timage 建议不要再用 原来的滚动条,在需要滚动条的区域留一块用来画滚动条就行
qq_17281823 2020-02-16
  • 打赏
  • 举报
回复
本人是小白,请劲量注释一下代码,我想以这个实例开始学习delphi
基于微信小程序的传染病防控宣传系统的设计与实现结合Spring Boot框架,旨在通过移动端平台向用户传播有关传染病预防和控制的知识,提高公众对传染病防控的认知和应对能力。该系统具有以下主要特点: 微信小程序端: 提供简洁易用的用户界面,用户可以通过微信小程序随时随地获取传染病防控相关信息。 包括首页、文章列表、文章详情、预防知识、应急处理等功能模块,覆盖了用户获取信息的各个方面。 支持用户注册、登录、个人信息管理等功能,提高用户参与度和信息个性化服务。 后端Spring Boot框架: 基于Spring Boot框架实现后端业务逻辑,包括文章管理、用户管理、数据统计等功能。 使用Spring MVC进行前后端数据交互,采用RESTful风格的API设计,提高系统的灵活性和可扩展性。 结合Spring Security框架进行权限管理和用户认证,保障系统的安全性和稳定性。 内容管理与推送: 后台管理系统支持管理员发布、编辑、删除传染病防控相关文章,包括预防知识、最新疫情、应急处理等内容。 系统支持定时推送功能,管理员可以设置定时推送特定文章或消息给用户,提高信息传播效率和及时性。 数据统计与分析: 系统收集用户访问行为、阅读偏好等数据,并进行统计和分析,为管理员提供用户行为分析报告和数据可视化展示。 根据数据分析结果,管理员可以调整内容发布策略,提高信息传播效果和用户参与度。 应急处理与求助功能: 系统提供传染病应急处理指南和紧急求助功能,用户在遇到传染病突发事件时可以及时获取应对方法和求助渠道。 系统实现用户求助信息的快速响应和转发,保障用户在紧急情况下的安全和健康。 通过以上功能的设计与实现,基于微信小程序的传染病防控宣传系统结合Spring Boot框架为用户提供了一个便捷、及时的传染病防控信息平台,有助于提高公众对传染病防控的认知和响应能力。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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