procedure WelcherHintergrund(HintergrundZaehler:Integer);
begin
if HintergrundZaehler = 99 then; // das ; ist zu viel
Hintergrund.Glyph.loadfromfile('99.bmp');
end;
Du solltest immer absolute Pfade verwenden. Ohne den Pfad wird die Datei aus dem aktuellen Arbeitsverzeichnis geladen. Das kann sich aber während der Laufzeit ändern.
Wenn das Bild im EXE-Ordner ist kannst du mit ParamStr(0) bzw. Application.Exename darauf zugreifen.
Delphi-Quellcode:
// Pfad + Dateiname der EXE ermitteln (z. B. C:\Programme\meineapp.exe)
FileName := Application.ExeName;
// ODER
FileName := ParamStr(0);
// Den Pfad aus FileName extrahieren. Ergibt dann C:\Programme\
Path := ExtractFilePath(FileName);
Delphi-Quellcode:
procedure WelcherHintergrund(HintergrundZaehler:Integer);
var
FileName: String;
Path: String;
begin
FileName := Application.ExeName;
Path := ExtractFilePath(FileName);
if HintergrundZaehler = 99 then;
Hintergrund.Glyph.loadfromfile(Path + '99.bmp');
end;
Wenn du den Pfad zu anderen Verzeichnissen ermitteln möchtest, kannst du die Funktionen SpecialDirectory, SHGetFolderPath oder GetKnownFolderPath verwenden. Diese geben dann Pfade wie z. B. Windows-Ordner, Video-Ordner, .... zurück.
Delphi-Quellcode:
function GetSpecialDirectory(ACSIDL: Integer; AHandle: Cardinal = 0): String;
const
SHGFP_TYPE_CURRENT = 0;
var
APIResult: HRESULT;
Buffer: Array[0 .. MAX_PATH - 1] of WCHAR;
begin
Result := '';
APIResult := SHGetFolderPathW(AHandle, ACSIDL, 0, SHGFP_TYPE_CURRENT, Buffer);
if APIResult = S_OK then
begin
Result := WideString(Buffer);
Result := IncludeTrailingPathDelimiter(Result);
Result := Trim(Result);
end;
end;