有关ListBox循环的问题!编译总是出错!

CS668 2008-10-11 08:06:53
unit Unit1;

interface

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

type
TForm1 = class(TForm)
grp1: TGroupBox;
lst1: TListBox;
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn4: TButton;
btn5: TButton;
btn6: TButton;
dlgOpen1: TOpenDialog;
tmr1: TTimer;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
procedure btn6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
flag:boolean;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
strfile:string;
i:Integer;
begin
dlgOpen1.Title := '选择文件';
if dlgOpen1.Execute then
begin
for i:=0 to dlgOpen1.Files.Count-1 do
begin
strfile:=dlgOpen1.Files.Strings[i];
lst1.Items.Add(strfile);
end;
lst1.Selected[0]:=true;
end;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
lst1.DeleteSelected;
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
lst1.Clear;
end;

procedure TForm1.btn4Click(Sender: TObject);
var
PlayerFile, swfFile: TMemoryStream;
ExeFile: TFileStream;
SWFFileName:String;
AppPath: String;
exeFileName: String;
nInt, nFileSize: Integer;
FVersion: Array [0..2] of byte;
begin
// 将Edit1中的路径赋给exeFileName变量
swfFileName :=lst1.items.strings[lst1.ItemIndex];
// 修改EXE路径中的扩展名,以获取SWF文件的存储路径。
exeFileName := ChangeFileExt(swfFileName, '.exe');

// 检查指定的EXE文件是否存在,如果不存在则退出过程,不做任何处理。
if not FileExists(swfFileName) then
begin
ShowMessage('文件未找到!');
Exit;
end;
// 获取该转换程序所在路径
AppPath := ExtractFilePath(ParamStr(0));
if AppPath[Length(AppPath)] <> '\' then AppPath := AppPath + '\';

// 首先,将Flash Player文件读入内存
PlayerFile := TMemoryStream.Create; // 创建PlayerFile对象
PlayerFile.LoadFromFile(AppPath + 'Player.exe'); // 读入内存

// 然后新建一个空的EXE文件,保存在同SWF文件想同的路径中
ExeFileName := ChangeFileExt(lst1.items.strings[lst1.ItemIndex], '.exe'); // 将扩展名改为EXE即获得EXE文件路径

ExeFile := TFileStream.Create(ExeFileName + '.exe', fmCreate or fmOpenWrite);
// 此时将要转换的SWF文件读入内存
swfFile := TMemoryStream.Create; // 创建swfFile对象
swfFile.LoadFromFile(lst1.items.strings[lst1.ItemIndex]); // 读入内存

// 准备工作已经完成,现在将Player文件内容先写入EXE文件中
ExeFile.CopyFrom(PlayerFile, 0);
// 然后再将SWF文件内容追加到EXE文件中去
ExeFile.CopyFrom(swfFile, 0);
// 大部分工作已经完成,现在剩下将文件大小及相关标志写入到文件尾中
// 设置版本号
FVersion[0] := $56;
FVersion[1] := $34;
FVersion[2] := $12;

ExeFile.Write(FVersion, sizeof(FVersion)); //将版本号写入EXE文件中

nInt:=$FA; // 设置标志
ExeFile.Write(nInt, 1); // 将标志写入EXE文件中
nFileSize := swfFile.Size; // SWF文件大小
ExeFile.Write(nFileSize, 4); // 将SWF文件大小写入EXE文件中

// 释放资源,完成转换工作
ExeFile.Free;
swfFile.Free;
PlayerFile.Free;


end;
procedure TForm1.tmr1Timer(Sender: TObject);
if flag=True then
begin
lst1.Selected[lst1.ItemIndex]:=false;
if lst1.ItemIndex <lst1.Count-1 then
lst1.ItemIndex:=lst1.ItemIndex+1
else
lst1.ItemIndex:=0;
lst1.Selected[lst1.ItemIndex]:=true;
end;
procedure TForm1.btn6Click(Sender: TObject);
begin
Close;
end;

end.


运行之后提示:
[Error] Unit1.pas(130): Declaration expected but 'IF' found
请高手指教错误在那?
...全文
108 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CS668 2008-10-12
  • 打赏
  • 举报
回复
我是想实现循环功能!但出错了!!高手看下代码!!看错误在那?
chscheese 2008-10-12
  • 打赏
  • 举报
回复
不是你晕了就是我晕了

procedure TForm1.tmr1Timer(Sender: TObject);
begin
if flag=True then
begin
lst1.Selected[lst1.ItemIndex]:=false;
if lst1.ItemIndex <lst1.Count-1 then
lst1.ItemIndex:=lst1.ItemIndex+1
else
lst1.ItemIndex:=0;
lst1.Selected[lst1.ItemIndex]:=true;
end;
end;
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。

830

社区成员

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

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