AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Grafik in Resource zur Laufzeit ersetzen...
Thema durchsuchen
Ansicht
Themen-Optionen

Grafik in Resource zur Laufzeit ersetzen...

Ein Thema von FriFra · begonnen am 27. Dez 2005 · letzter Beitrag vom 27. Dez 2005
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

Grafik in Resource zur Laufzeit ersetzen...

  Alt 27. Dez 2005, 00:04
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;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Grafik in Resource zur Laufzeit ersetzen...

  Alt 27. Dez 2005, 07:29
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Grafik in Resource zur Laufzeit ersetzen...

  Alt 27. Dez 2005, 10:10
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 }

...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz