![]() |
Grafik in Resource zur Laufzeit ersetzen...
Ich will zur Laufzeit eine Grafik in einer Bitmap Resource ersetzen. Ich will dabei NICHT die Datei ändern...
Wie das ganze mit Strings funktionieret weiß ich, aber mit Grafiken hab ich das noch nicht hinbekommen... Procedure zum überschreiben von Strings:
Delphi-Quellcode:
procedure HookResourceString(rs: PResStringRec; newStr: PChar);
var oldprotect: DWORD; begin VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldProtect); rs^.Identifier := Integer(newStr); VirtualProtect(rs, SizeOf(rs^), oldProtect, @oldProtect); end; |
Re: Grafik in Resource zur Laufzeit ersetzen...
wie kommst du an den PResStringRec der originalressource? könntest du mal bitte einen Beispielaufruf posten wie man so eine Stringressource damit austauscht. Ich wollte das ganze gerade probieren denn eigentlich sollte der Ressourcentyp ja egal sein, das Prinzip müsste das gleiche sein aber konnte eben nichts probieren da mir selbst der Ansatz für die Stringressource fehlt.
|
Re: Grafik in Resource zur Laufzeit ersetzen...
Delphi-Quellcode:
var
{ Resourcen überschreiben } PMsgDlgOK, PMsgDlgAbort, PMsgDlgYes, PMsgDlgNo, PMsgDlgWarning, PMsgDlgError, PMsgDlgInformation, PMsgDlgConfirm: array[0..255] of AnsiChar; ... try { B E G I N N - Vorblegte Resourcen überschreiben } { Hookvariablen initialisieren } PMsgDlgOK := #0; PMsgDlgAbort := #0; PMsgDlgYes := #0; PMsgDlgNo := #0; PMsgDlgWarning := #0; PMsgDlgError := #0; PMsgDlgInformation := #0; PMsgDlgConfirm := #0; { Hookvariablen belegen } StrCopy(PMsgDlgOK, PAnsiChar(GetResTxt(LangDll, 1))); StrCopy(PMsgDlgAbort, PAnsiChar(GetResTxt(LangDll, 2))); StrCopy(PMsgDlgYes, PAnsiChar(GetResTxt(LangDll, 3))); StrCopy(PMsgDlgNo, PAnsiChar(GetResTxt(LangDll, 4))); StrCopy(PMsgDlgWarning, PAnsiChar(GetResTxt(LangDll, 5))); StrCopy(PMsgDlgError, PAnsiChar(GetResTxt(LangDll, 6))); StrCopy(PMsgDlgInformation, PAnsiChar(GetResTxt(LangDll, 7))); StrCopy(PMsgDlgConfirm, PAnsiChar(GetResTxt(LangDll, 8))); { Hookvariablen einschleusen } HookResourceString(@SMsgDlgOK, PMsgDlgOK); HookResourceString(@SMsgDlgAbort, PMsgDlgAbort); HookResourceString(@SMsgDlgCancel, PMsgDlgAbort); HookResourceString(@SMsgDlgYes, PMsgDlgYes); HookResourceString(@SMsgDlgNo, PMsgDlgNo); HookResourceString(@SMsgDlgWarning, PMsgDlgWarning); HookResourceString(@SMsgDlgError, PMsgDlgError); HookResourceString(@SMsgDlgInformation, PMsgDlgInformation); HookResourceString(@SMsgDlgConfirm, PMsgDlgConfirm); { E N D E - Vorblegte Resourcen überschreiben } ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz