[英]Error when changing TImage picture on click event
我有以下基本代碼:
procedure TForm4.shrek1Click(Sender: TObject);
begin
shrek1.Picture.LoadFromFile('donkey.jpeg');
end;
其中shrek1
是TImage
, donkey.jpeg
是我希望單擊時要shrek1
加載的圖像。
donkey.jpeg
實際上位於所有其他相關項目文件的相同目錄中,但是當我嘗試運行代碼時,出現錯誤:
異常類EFOpenError,消息為“無法打開文件“ \\(為保護隱私已刪除目錄)\\ donkey.jpeg”。 該系統找不到指定的文件
我究竟做錯了什么?
始終使用絕對路徑。 相對路徑是相對於調用進程的“當前工作目錄”的,它可以(並且通常會)在進程的生存期內更改值,而並非總是您所期望的。
如果JPG文件與EXE位於同一文件夾中,則可以執行以下操作:
var
AppPath: string;
procedure TForm4.shrek1Click(Sender: TObject);
var
FileName: string;
begin
FileName := AppPath+'donkey.jpeg'; // <-- make sure this path is accurate!
shrek1.Picture.LoadFromFile(FileName);
end;
initialization
AppPath := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.