Delphi 如何阅读图片并使用按钮查看它们

Delphi 如何阅读图片并使用按钮查看它们,delphi,Delphi,我知道如何在delphi中加载和查看一张图片。但是,我想添加一个“下一个图像”按钮,用于显示文件中的下一个图像。我有5个图像在一个文件中,我想通过他们轻松滚动使用下一步按钮!我试着做下一步按钮,但不知道该放什么代码 请帮忙,谢谢 Gpath是一个全局字符串变量 procedure TPropertyForm.FormCreate(Sender: TObject); begin GPath := getcurrentdir + '\EmployeePhotos\'; EmployeeOpe

我知道如何在delphi中加载和查看一张图片。但是,我想添加一个“下一个图像”按钮,用于显示文件中的下一个图像。我有5个图像在一个文件中,我想通过他们轻松滚动使用下一步按钮!我试着做下一步按钮,但不知道该放什么代码

请帮忙,谢谢

Gpath是一个全局字符串变量

procedure TPropertyForm.FormCreate(Sender: TObject);
begin
  GPath := getcurrentdir + '\EmployeePhotos\';
  EmployeeOpenPictureDialog.InitialDir := getcurrentdir + '\EmployeePhotos';

end;

procedure TPropertyForm.AttatchButtonClick(Sender: TObject);
var
  st: string;
  fsize, psize: integer;
begin
  if EmployeeOpenPictureDialog.execute then
  begin
    st := EmployeeOpenPictureDialog.FileName;
    psize := length(GPath);
    fsize := length(st);
    Properties.Photo := copy(st, psize + +1, fsize - psize)
  end { endif };

  PhotoImage.Hide;

  if Properties.Photo <> '' then
  begin
    st := GPath + Properties.Photo;
    if FileExists(st) then
    begin
      PhotoImage.Picture.LoadFromFile(st);
      PhotoImage.Proportional := true;
      PhotoImage.Show;
    end
    { endif }
  end; { endif }
end

procedure TPropertyForm.NextImageButtonClick(Sender: TObject);
begin
  PhotoImage.Picture.LoadFromFile(st + 1);
end;
procedure TPropertyForm.FormCreate(发送方:TObject);
开始
GPath:=getcurrentdir+'\EmployeePhotos\';
EmployeeOpenPictureDialog.InitialDir:=getcurrentdir+'\EmployeePhotos';
结束;
过程TPropertyForm.AttatchButtonClick(发送方:ToObject);
变量
st:字符串;
fsize,psize:整数;
开始
如果EmployeeOpenPictureDialog.execute,则
开始
st:=EmployeeOpenPictureDialog.FileName;
psize:=长度(GPath);
fsize:=长度(st);
Properties.Photo:=copy(st,psize++1,fsize-psize)
结束{endif};
照片图像。隐藏;
如果是属性。照片“”,则
开始
st:=GPath+Properties.Photo;
如果文件存在(st),则
开始
PhotoImage.Picture.LoadFromFile(st);
照片图像。比例:=真;
照片。展示;
结束
{endif}
结束;{endif}
结束
过程TPropertyForm.NextImageButtonClick(发送方:TObject);
开始
PhotoImage.Picture.LoadFromFile(st+1);
结束;

我认为您希望从“文件夹”加载图像并在它们之间切换,如果是这样,请尝试此代码

放置2个t按钮和1个t按钮

         uses jpeg;
public
{ Public declarations }
var
SL:TStringList;
ImgIndex:integer;
GPath:String;
procedure ListFileDir(Path: string; FileList: TStrings);
var
  SR: TSearchRec;
begin
  if FindFirst(Path + '*.jpg', faAnyFile, SR) = 0 then 
  begin
    repeat
  if (SR.Attr <> faDirectory) then
      begin
        FileList.Add(SR.Name);
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
GPath:=   getcurrentdir + '\EmployeePhotos\';
SL:=TStringList.Create;
ListFileDir(GPath,SL);
Image1.Picture.LoadFromFile(GPath + SL.Strings[ImgIndex] );
end;

procedure TForm1.btnNextClick(Sender: TObject);
begin
ImgIndex:=ImgIndex+1;
if ImgIndex=SL.Count  then ImgIndex :=0;
Image1.Picture.LoadFromFile(GPath + SL.Strings[ImgIndex] );
end;

procedure TForm1.btnPrevClick(Sender: TObject);
begin
ImgIndex:=ImgIndex-1;
if ImgIndex=-1  then ImgIndex :=SL.Count-1;
Image1.Picture.LoadFromFile(GPath + SL.Strings[ImgIndex] );
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SL.Free;
end;
使用jpeg;
公众的
{公开声明}
变量
SL:TStringList;
ImgIndex:整数;
GPath:String;
过程ListFileDir(路径:string;文件列表:TStrings);
变量
SR:TSearchRec;
开始
如果FindFirst(Path+'*.jpg',faAnyFile,SR)=0,则
开始
重复
如果(高级属性目录),则
开始
FileList.Add(SR.Name);
结束;
直到FindNext(SR)0;
FindClose(SR);
结束;
结束;
过程TForm1.FormCreate(发送方:TObject);
开始
GPath:=getcurrentdir+'\EmployeePhotos\';
SL:=TStringList.Create;
ListFileDir(GPath,SL);
Image1.Picture.LoadFromFile(GPath+SL.Strings[ImgIndex]);
结束;
程序TForm1.btnNextClick(发送方:TObject);
开始
ImgIndex:=ImgIndex+1;
如果ImgIndex=SL.Count,则ImgIndex:=0;
Image1.Picture.LoadFromFile(GPath+SL.Strings[ImgIndex]);
结束;
程序TForm1.btnPrevClick(发送方:TObject);
开始
ImgIndex:=ImgIndex-1;
如果ImgIndex=-1,则ImgIndex:=SL.Count-1;
Image1.Picture.LoadFromFile(GPath+SL.Strings[ImgIndex]);
结束;
过程TForm1.FormClose(发送方:TObject;var操作:TCloseAction);
开始
SL.免费;
结束;

您是否尝试使用ImageList组件?您的代码无法编译。你知道图像文件的名称吗?不要依赖于当前目录是您认为的目录。您在一个文件中有5个图像?这是什么文件?Delphi图像类本机不支持多图像文件,因此您必须做一些额外的工作来处理和分离多个图像。