循环中有延时,导致在循化执行中不能关闭,如何可以关闭?

lostmoon 2010-02-09 07:02:33

循环中有延时,导致在循化执行中不能关闭,如何可以关闭?



程序循化取出数据库的URL,然后在webbrowser打开,每次打开间隔10s。




procedure Delay(dwMilliseconds: Longint);
var
iStart, iStop: DWORD;
begin
iStart := GetTickCount;
repeat
iStop := GetTickCount;
Application.ProcessMessages;
until (iStop - iStart) >= dwMilliseconds;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin

Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('select * from keywords');
Form1.ADOQuery1.Active:=True;
Form1.ADOQuery1.ExecSQL;
ADOQuery1.first;

b:=true;
while(b) do
begin
while not adoquery1.eof do
begin
if not b then break;



WebBrowser1.Navigate(ADOQuery1.FieldByName('KeyURL').value);
Delay(10000);
repeat
Application.ProcessMessages;
until (not webbrowser1.Busy);

adoquery1.next;

end;
end;
end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
b:=false;
end;













...全文
103 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lostmoon 2010-02-10
  • 打赏
  • 举报
回复
不 想 用 timer
forestry98 2010-02-10
  • 打赏
  • 举报
回复
看楼主的回复就知道是超级新手。

TTimer 用消息驱动,不比你用 repeat ...... until 循环好吗?
你不用任务管理器看看 Delay 函数延时的时候,你的程序占用的 CPU 有多高!
lostmoon 2010-02-10
  • 打赏
  • 举报
回复
这种情况不好,外层还有一个循环,也会定时器? 那么定时多少呢,
forestry98 2010-02-09
  • 打赏
  • 举报
回复
真大意,要要修改一个地方


procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FIndex < FList.Count then begin
WebBrowser1.Navigate(FList.Strings[FIndex]);
Inc(FIndex);
end else
Timer1.Enabled := False;
end;

forestry98 2010-02-09
  • 打赏
  • 举报
回复
修改了一下

procedure TForm1.Button1Click(Sender: TObject);
begin
FList.Clear;
FIndex := 0;
with ADOQuery1 do begin
SQL.Text := 'select * from keywords';
Open;
while not Eof do begin
FList.Add(FieldByName('KeyURL').value);
Next;
end;
Close;
end;
Timer1.Enabled := True;
end;
forestry98 2010-02-09
  • 打赏
  • 举报
回复
我建议楼主用 TTimer 定时


type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
ADOQuery1: TADOQuery;
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
FList: TStrings;
FIndex: Integer;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
FList := TStringList.Create;
Timer1.Enabled := False;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FList.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FList.Clear;
FIndex := 0;
with ADOQuery1 do begin
SQL.Text := 'select * from keywords';
ExecSQL;
while not Eof do begin
FList.Add(FieldByName('KeyURL').value);
Next;
end;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FIndex < FList.Count then begin
WebBrowser1.Navigate(FList.Strings(FIndex);
Inc(FIndex);
end else
Timer1.Enabled := False;
end;

end.
# 主成分分析PCA降维算法Python实现 - 数据降维和特征提取 ## 项目简介 本项目提供了主成分分析(Principal Component Analysis, PCA)算法的完整Python实现,包含从数据预处理到结果可视化的全套功能。PCA是一种经典的无监督降维算法,通过线性变换将高维数据投影到低维空间,同时保持数据的最大方差,广泛应用于数据降维、特征提取、数据可视化等领域。 ### 功能特点 - **完整的PCA算法实现**:包含数据标准化、协方差矩阵计算、特征值分解等核心步骤 - **多种数据生成器**:内置多种类型的测试数据生成功能 - **丰富的可视化功能**:支持解释方差图、散点图、双图、热力图等多种可视化方式 - **灵活的参数配置**:支持自定义主成分数量、标准化选项等 - **全面的分析工具**:包含特征重要性分析、重构误差计算、最优成分数量确定等 - **详细的示例代码**:提供多个应用场景的完整示例 ## 安装说明 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用说明 ```bash # 运行所有演示 pytho ```bash # 运行所有演示 python main.py --demo all # 运行特定演示 python main.py --demo iris # 鸢尾花数据集分析 python main.py --demo high_dim # 高维数据降维 python main.py --demo correlated # 相关性数据分析 python main.py --demo comprehensive # 综合分析 # 指定输出目录 python main.py --output results ```
基于Javaweb的机房管理系统的设计与实现编程环境:idea2022平台,jdk1.8,tomcat8.5编程语言:java语言,编程技术:前端vue,div,css,后端:springboot框架,数据库:mysql5.7版本,Navicat Premium 12插件前台+后台前台学生注册,登录机房安全公告列表, 点击查看详情机房信息列表(点击搜索机房,查看到机房的详细情况)上机预约:选择机房,查看电脑信息,显示多少台电脑,点击可以查看机房的电脑详情,多少空闲的,点击可以预约电脑(填写预约时间,预约人)机房消防检公布设备故障上报:注册的学生也可以进行设备故障报修后台管理员管理员信息管理机房安全公告管理机房消防检查管理(记录每次的消防检查,对检查结果进行公布)教师信息管理维修人员管理注册学生管理,审核机房信息管理(多个机房)设备信息管理(电脑设备)填写CPU,内存,品牌,显卡等基本信息日志信息管理教师教师资料修改机房上机预约管理软件设备报修,查看维修结果硬件设备报修,查看维修结果上机信息管理:设置上机信息,下机信息,查看上机时间,查看到历史上机信息维修人员资料信息修改软件设备报修管理,填写维修结果硬件设备报修管理,填写维修结果设备故障报修管理:主要是针对学生前台提交的报修进行管理,处理学生学生资料修改我的预约信息我的上机:点击选择某个电脑进行上机,只能选择预约同意的电脑进行上机,我的下机:上机结束后,点击可以下机,并且计算出上机时间我的历史上机我的设备故障报修管理

1,184

社区成员

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

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