簡體   English   中英

單擊事件時更改TImage圖片時出錯

[英]Error when changing TImage picture on click event

我有以下基本代碼:

procedure TForm4.shrek1Click(Sender: TObject);
begin
  shrek1.Picture.LoadFromFile('donkey.jpeg');
end;

其中shrek1TImagedonkey.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM