我目前正在忙于一个项目,非常疲倦,无法直截了当,并且在从文件加载图片时遇到了一些麻烦,其中图片的名称存储在一个变量中,该变量根据某人在组合框中选择的内容。组合框已排序,第一个ItemIndex是表中第一部分的名称。
以下是(可怕而平庸的)代码,用于将文件名声明为变量:
begin
iTel := 0;
with dmMusiekstukke do
begin
while not (tblMusiekstukke.Eof) AND (iTel <= 4) do
begin
tblMusiekstukke.First;
Inc(iTel) ;
arrMusic[itel] := tblMusiekstukke['Musicpiece name'] ;
tblMusiekstukke.Next ;
end;
end;
case cbbMusic.ItemIndex of
0 : Image := arrMusic[1] ;
1 : image := arrMusic[2] ;
2 : Image := arrMusic[3] ;
3 : Image := arrmusic[4] ;
end;
end;
图像的文件名与数据库的“乐曲名称”字段中的项目名称完全相同。 (字符串的)数组应使用Musicpiece的名称填充,而Musicpiece的名称又是文件的名称。人们从组合框中选择所需的音乐片段,并显示该特定音乐片段的图片。
我用于加载文件的代码:
procedure TfrmSheets.FormShow(Sender: TObject);
begin
imgSheet.Picture.LoadFromFile( '''' + frmMusic.Image + '.png');
end;
end.
如您所见,我真的不确定该怎么做。所有图片均为.png格式。非常感谢。
答案 0 :(得分:0)
小心。如果frmMusic.Image
仅包含文件名,则图片文件必须位于\you_project\Win32\Debug
您能检查一下什么包含frmMusic.Image
尝试将此值设置为Label
答案 1 :(得分:-2)
好的,我整理了一下。它的工作原理是不在两边都加撇号,这是我的问题之一,但是是我在这里发现的另一个解决方案:The system cannot find the file specified
然后我这样做了:
imgSheet.Picture.LoadFromFile(frmMusic.Image + '.png.png');
我也删除了
tblMusiekstukke.First ;
退出While循环,因为它一直将表的标记始终放置在第一项上。现在,它可以完美运行。