Ester mensaje de error me salio por cargar imagenes de una dll. Tengo unas imagenes que cambian en el evento onEnter y onExit, pues si estos eventos se lanzan unas 12 veces o asi se cuelga el proceso explorer.exe y se pone la pantalla en blanco y me sale este mensaje de error
Me parece que es por la memoria que no la libero porque cada vez que se lanza el eventro onEnter y onExit en el taskmanager se nota como aumenta el consumo de memoria de la aplicacion.
En la dll tengo imagenes como archivos de recursos y dentro de la dll tengo una funcion para extraer todas las imagenes:
Código Delphi
[-]
type
PHXBitmap = record
phxPlay, phxPlayMove, phxPlayClick, phxPause, phxPauseMove, phxPauseClick, phxPrevious,
phxPreviousMove, phxPreviousClick, phxNext, phxNextMove, phxNextClick, phxStop, phxStopMove,
phxStopClick, phxOpen, phxOpenMove, phxOpenClick: HBITMAP;
end;
function GetImages : PHXBitmap; stdcall; export;
exports
GetImages;
implementation
function GetImages : PHXBitmap;
var
DllHandle: THandle;
begin
DllHandle := LoadLibrary('.\phxres\phxres.dll');
if DllHandle <> 0 then begin
try
result.phxPlay:= LoadBitmap(DllHandle, 'Play');
result.phxPlayMove:= LoadBitmap(DllHandle, 'PlayMove');
result.phxPlayClick:= LoadBitmap(DllHandle, 'PlayClick');
result.phxPause:= LoadBitmap(DllHandle, 'Pause');
result.phxPauseMove:= LoadBitmap(DllHandle, 'PauseMove');
result.phxPauseClick:= LoadBitmap(DllHandle, 'PauseClick');
result.phxStop:= LoadBitmap(DllHandle, 'Stop');
result.phxStopMove:= LoadBitmap(DllHandle, 'StopMove');
result.phxStopClick:= LoadBitmap(DllHandle, 'StopClick');
result.phxNext:= LoadBitmap(DllHandle, 'Next');
result.phxNextMove:= LoadBitmap(DllHandle, 'NextMove');
result.phxNextClick:= LoadBitmap(DllHandle, 'NextClick');
result.phxPrevious:= LoadBitmap(DllHandle, 'Previous');
result.phxPreviousMove:= LoadBitmap(DllHandle, 'PreviousMove');
result.phxPreviousClick:= LoadBitmap(DllHandle, 'PreviousClick');
result.phxOpen:= LoadBitmap(DllHandle, 'Open');
result.phxOpenMove:= LoadBitmap(DllHandle, 'OpenMove');
result.phxOpenClick:= LoadBitmap(DllHandle, 'OpenClick');
finally
end;
end
else begin
end;
end;
Y aqui la llamada...
Código Delphi
[-]
procedure TFMain.StopMouseEnter(Sender: TObject);
begin
Stop.Picture.Bitmap.Handle:= GetImages.phxStopMove;
end;
Espero que me puedan ayudar.. Salu2