lazarus开发界面程序用线程显示进度条
lazarus开发界面程序用线程显示进度条,效果更好,以前没有另外显示线程,遇到上传文件或其他较长时间操作,界面就卡在那里,体验不好,现在另外启动线程操作,主界面就不至于卡在那里。
首先在主界面上定义线程
type{ TMyBackupThread }TMyBackupThread = class(TThread)privatefStatusText: string;procedure ShowStatus;protectedprocedure Execute; override;publicconstructor Create(CreateSuspended: boolean);end;{ TForm1 }TForm1 = class(TForm)
然后在实现线程内容
{TBackupThread}procedure TMyBackupThread.ShowStatus;
// this method is only called by Synchronize(@ShowStatus) and therefore
// executed by the main thread
// The main thread can access GUI elements, for example Form1.Caption.
beginwriteln( fStatusText);form1.Memo1.Append(fStatusText);
end;procedure TMyBackupThread.Execute;
varRespo: TStringStream;S: string;
beginfStatusText := 'Backup Starting ...';Synchronize(@Showstatus); //If I remark this, it causes "access violation" errorwith TFPHttpClient.Create(nil) dotryRespo := TStringStream.Create('');WriteLn(form1.Memo1.Lines.Strings[0]);WriteLn(Formatdatetime('yyyy-mm-dd hh:nn:ss.zzz',now)); FileFormPost(requrl + 'downFile', 'file', form1.Memo1.Lines.Strings[0], Respo);S := Respo.DataString;WriteLn(s);WriteLn(Formatdatetime('yyyy-mm-dd hh:nn:ss.zzz',now));form1.Memo1.Append(S);Respo.Destroy; finallyFree;end;fStatusText := 'Backup Completed';Synchronize(@Showstatus);MyShowThread.active:=false;Form3.hide;
end;constructor TMyBackupThread.Create(CreateSuspended: boolean);
beginFreeOnTerminate := True;inherited Create(CreateSuspended);
end;
然后就可以在主界面里需要的地方调用了
procedure TForm1.btnUpClick(Sender: TObject);
varMyBackupThread : TMyBackupThread;
beginMyBackupThread := TMyBackupThread.Create(True); // With the True parameter it doesn't start automaticallyif Assigned(MyBackupThread.FatalException) thenraise MyBackupThread.FatalException;// Here the code initialises anything required before the threads starts executingif Form3=nil thenbeginForm3:=TForm3.Create(application);WriteLn('TForm3.Create');end;Form3.Show;//Test_DummyMyBackupThread.Start;Form3.FormProgress;
end;
from3是做了一个动画进度条,也可不要,至少主界面不会卡在那里不动了
lazarus要展示gif动画图片,需要安装gifanim组件,只需要把文件名赋值即可
相关文章:
lazarus开发界面程序用线程显示进度条
lazarus开发界面程序用线程显示进度条,效果更好,以前没有另外显示线程,遇到上传文件或其他较长时间操作,界面就卡在那里,体验不好,现在另外启动线程操作,主界面就不至于卡在那里。 首先在主界面…...
解决VSCode下载速度特别慢的问题
一、下载VSCode 1.打开VSCode官网 https://code.visualstudio.com 2.download下载 3.下载特别慢 二、解决VSCode下载速度特别慢 1.单击右下角全部显示 我是用chrome浏览器,点击右下角的全部显示按钮,可以跳转到下载内容页面。 如果你是用其他浏览器…...
国家矿山安全监察局关于露天矿山边坡监测系统建设及预警响应要求
矿山是人类社会发展的物资基础,也是国民经济的重要组成部分。随着我国经济的快速增长,矿山开发步伐加快,使得边坡问题日益严重,影响了矿山的安全生产。为有效防范遏制矿山重特大事故发生,国家矿山安全监察局在8月30日发…...
前端使用elementui开发后台管理系统的常用功能(持续更新)
前言:本次的文章完全是自己开发中遇到的一些问题,经过不断的修改终于完成的一些功能,当个快捷的查看手册吧~ elementui开发后台管理系统常用功能 高级筛选的封装elementui的表格elementui的表格实现跨页多选回显elementui的表单elementui的日…...
中东 Shopify 如何使用 Bytebase 构建一站式数据库开发工作流
公司简介 Salla 是一家 2016 年成立,位于沙特麦加的自建站电商平台。 作为中东 Shopify,其最大的特点是支持阿拉伯语建站,并且提供更多适应中东地区特点的本地化服务。截止目前,已有 47,000 家店铺入驻 Salla,商品销售…...
谷歌Chrome庆祝15周年,推出全新设计!了解最新信息!
谷歌浏览器本月将满15岁,为了纪念这一时刻,它正在进行改造和升级。 这一点意义重大,因为Chrome在全球有数十亿人使用,因此谷歌所做的每一项改变都会对互联网以及这些人与互联网的互动方式产生巨大影响。即使你不使用Chrome或不关…...
解决Oracle SQL语句性能问题——SQL语句改写(分析函数、with as、union及or)
1. 正确使用分析函数 分析函数最早出现于Oracle 8i版本中,并在后续版本中不断得以增强。正确的使用分析函数,不但能非常方便的实现某些功能,而且,在某些场景中,还可以大幅提升SQL语句的性能。因此,为了简化应用实现逻辑或解决相关SQL语句性能问题,有时我们需要利用分析…...
Linux之SELinux
目录 概述 定义 作用 SELinux与传统的权限区别 SELinux工作原理 名词解释 主体(Subject) 目标(Object) 策略(Policy) 安全上下文(Security Context) 文件安全上下文查看 …...
Acwing算法心得——街灯(差分)
大家好,我是晴天学长,差分广泛用于一段范围的加减运算,可以优化时间复杂度,需要的小伙伴请自取哦!如果觉得写的不错的话,可以点个关注哦,后续会继续更新的。💪💪…...
streamlit执行报错WARNING,重新安装碰到问题如何解决
streamlit执行报错WARNING,重新安装碰到问题如何解决 如何解决1、卸载已经安装的程序2、再次安装程序3、出现如下yinstaller 警告问题:4、又出现“which is not on PATH”警告。5、解决方案 发现在安装的时候有很多WARNING出现,但是没有但回事…...
《C++设计模式》——行为型
前言 行为型模式是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。 Interpreter(解释器) Template Method(模板方法) GOOD:把不变的代码部分都转移到父类中,将可变的代…...
什么是原生IP?原生IP与住宅IP有何区别?
相信许多做跨境的都会接触到IP代理,比如电商平台、社媒平台、收款平台等等,都会检测IP。那也会经常听到一些词汇:原生IP、住宅IP,这两者之间有什么区别呢?什么业务需要用到呢?接下来带大家具体了解一下。 什…...
element-plus 表格-自定义样式实现
效果如下 代码如下 <template><h2>表格自定义样式</h2><div style"background-color: cadetblue; height: 600px;"><div class"regulaContainer"><el-table ref"tableRef" :data"tableData" border …...
MVCC
MVCC(Multi-Version Concurrency Control)是数据库管理系统(DBMS)中的一种技术,用于管理并发访问数据,允许多个事务同时进行而不互相干扰,同时保持数据的一致性。 MVCC 的工作原理如下…...
你不知道的JavaScript---对象
1.语法 对象可以通过两种方式定义:一种是对象字面量形式,一种是构造形式 对象字面量: var muObject {key: value }构造形式的: var myObject new Object() myObject.key value不管是使用对象字面量形式还是构造形式创建出来…...
C++项目实战——基于多设计模式下的同步异步日志系统-①-项目介绍
文章目录 专栏导读项目介绍开发环境核心技术环境搭建日志系统介绍1.为什么需要日志系统2.日志系统技术实现2.1同步写日志2.2异步写日志 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师&a…...
解决Oracle数据库中日期格式不识别的问题
在数据库开发中,我们经常需要处理日期和时间数据。当我们在Oracle数据库中执行UPDATE语句时,可能会遇到ORA-01821错误,该错误表示提供的日期格式无法被数据库识别。本文将介绍如何解决Oracle数据库中日期格式不识别的问题。 问题分析&#x…...
一生一芯13——linux设置环境变量
参考自https://baijiahao.baidu.com/s?id1753516015142083750&wfrspider&forpc 本机使用ubuntu22.04 目录 1. 读取环境变量1. 读取特定环境变量2. 读取所有环境变量 2. 设置环境变量1. 对当前用户有效2. root设置 1. 读取环境变量 1. 读取特定环境变量 在命令行中输…...
CSS笔记(黑马程序员pink老师前端)定位
定位可以让盒子自由的在某个盒子内移动位置或者固定在屏幕中某个位置,并且可以压住其他盒子。 定位 定位模式 边偏移 定位模式说明static静态定位,按标准流特性摆放,没有边偏移,很少用relative相对定位,相对自身原有位置移动,原有位置继续占有(不脱标…...
C高级Linux指令和shell脚本
XMind...
功能子图检测技术在集成电路设计中的应用与优化
1. 功能子图检测技术概述 在集成电路设计领域,功能子图检测是一项基础而关键的技术。简单来说,它就像是在一堆乐高积木搭建的复杂结构中,找出那些功能相同但拼法可能不同的组件模块。这项技术的核心任务是判断一个给定的子图Q是否是目标图G的…...
Python之anonymate包语法、参数和实际应用案例
一、AnonyMate 包概述 AnonyMate是 Python 第三方数据匿名化工具包,版本 0.1.5,专注结构化/非结构化数据脱敏、假名化、加密与合成数据生成,适配医疗、金融、电商等敏感数据场景,助力合规(GDPR、等保2.0)。…...
注意力的几何本质:一个空间与两个算子的统一框架
1. 项目概述:这不是又一篇讲Attention机制的“科普文”如果你最近翻过几篇顶会论文,或者在GitHub上扫过几个热门Transformer库的源码,大概率会在某个角落撞见“The Geometry of Attention: One Space, Two Operators”这个标题。它不像“Atte…...
Go语言实现DCI架构:用角色扮演解耦对象行为与数据
1. 从“是什么”到“做什么”:DCI架构如何重塑对象行为建模在面向对象编程的世界里,我们总在试图用代码“复刻”现实。一个“人”是什么?我们定义一个People类,拥有姓名、年龄等属性。这个人能做什么?我们为People类添…...
CANN ONNX 模型生态兼容实战:从模型导入、算子映射到常见报错排查的全流程指南
一、ONNX 与 CANN 的关系 1.1 模型流转路径 PyTorch/TensorFlow↓ (export)ONNX 模型↓ (ATC 转换)CANN .om 模型↓ (ACL 推理)昇腾 NPU 执行ONNX 是中间格式,ATC 是桥梁1.2 为什么需要了解兼容性 常见痛点:1. PyTorch 新算子 ONNX 不支持2. ONNX 支持但 ATC 不支…...
CANN HCCL-COMM 通信拓扑感知:16卡训练时为什么 rank3 总是最慢的那张
### CANN HCCL-COMM 通信拓扑感知:16卡训练时为什么 rank3 总是最慢的那张 去年搭了一台 8 卡 Atlas 800 服务器做 LLaMA 预训练,一切顺利。后来集群扩到 3 台共 24 卡,单卡吞吐从 1.2 tokens/s 掉到 0.7。不是线性下降,是断崖式…...
LangChain-Chatchat 开发与应用(十) 企业级部署方案-Docker-Compose-K8s集群化实践
企业级部署方案:Docker Compose / K8s 集群化实践标签:Docker | Kubernetes | 高可用 | 生产部署 | DevOps一、从"单机玩具"到"生产系统" 前面九篇,咱们从 0 到 1 搭起了 Chatchat,做了二次开发,优…...
抖音下载神器:免费批量下载抖音视频、图集、音乐和直播回放完整指南
抖音下载神器:免费批量下载抖音视频、图集、音乐和直播回放完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…...
Unity背包系统架构设计:数据驱动、事件总线与三层物品模型
1. 为什么“背包系统”不是功能模块,而是游戏体验的神经中枢 很多人第一次在Unity里拖一个Panel、加几个Image和Text,就以为背包做完了。我见过太多项目——美术资源堆得漂亮,UI动效拉满,结果点开背包,物品不能拖拽、堆…...
SoC性能深度解析:从CPU/GPU到互连与内存子系统的系统性认知
1. 项目概述:从“黑盒”到“白盒”的SoC认知跃迁在芯片设计领域,尤其是面向移动设备、物联网终端和各类嵌入式系统,SoC(System on Chip,片上系统)早已成为绝对的核心。我们常常会听到这样的讨论:…...
