HMG - Imagem BMP não carrega no arquivo Resource .RC
Posted: Wed Jan 06, 2021 3:35 am
Tenho as seguintes imagens .BMP:
Ambos estão anexados ao .EXE através do arquivo .RC:
As funções/procedures que chamam as imagens são praticamente idênticas, exceto no nome delas.
A a do splash é:
Já a do login é:
Observem que aparentemente a forma como são acionadas as funções (ou melhor PROCEDURES) são semelhantes, exceto nos nomes e que no PROCEDURE splash tem mais informações.
Agora vejamos como é dentro de cada procedure, no início.
A do splash é:
Já a do login, é a mesma coisa, exceto o que já dissemos, veja:
Já o segundo que é o LOGIN_HMG() não funciona e, apresenta o erro descrito na linha que contém:
Se eu colocar no início do módulo que chama a LOGIN_HMG() a seguinte expressão:
e se modificar a chamada (tirando as "aspas") ao procedimento, para:
... aí, com as 2 alterações funciona.
Só funciona dessa forma. Mas pra isso, a imagem TLOGIN.BMP precisa estar na pasta LOGO, não fica indexada dentro do .EXE.
O link do tópico é:
http://www.pctoledo.com.br/forum/viewto ... 45&t=25032
Code: Select all
1 splash.bmp
2 Tlogin.bmp
Code: Select all
1 Splashhmg BITMAP I:\SISTEMA\Splash.bmp
2 Loginhmg BITMAP I:\SISTEMA\logo\TLogin.bmp
A a do splash é:
Code: Select all
1 CreateScreenSplash ("Splashhmg", nDelaySeconds, nAnimateSeconds)
Code: Select all
1 LOGIN_HMG("Loginhmg")
Agora vejamos como é dentro de cada procedure, no início.
A do splash é:
Code: Select all
1 PROCEDURE CreateScreenSplash (cFileName, nDelaySeconds, nAnimateSeconds)
2 *-------------------------------------------------------------------------------------------*
3 LOCAL hBitmap, Image_Width := 500 , Image_Height := 200 , Image_BackColor
4
5 IF HMG_GetImageInfo (cFileName, @Image_Width, @Image_Height, @Image_BackColor) == .F.
6 MsgHMGError ("Erro de abertura do arquivo de imagem de 'cFileName'. Programa será encerrado imediatamente." )
7 ENDIF
Code: Select all
1 PROCEDURE LOGIN_HMG (TelaLogin)
2 LOCAL hBitmap, Image_Width := 450 , Image_Height := 450 , Image_BackColor := 100
3
4 IF HMG_GetImageInfo (TelaLogin, @Image_Width, @Image_Height, @Image_BackColor) == .F.
5 MsgHMGError ("Erro de abertura do arquivo de imagem de 'TelaLogin'. Programa será encerrado imediatamente." )
6 ENDIF
O primeiro procedure CREATESCREENSPLASH () funciona perfeitamente.Bom, ou melhor, mau rsrsrrs
Já o segundo que é o LOGIN_HMG() não funciona e, apresenta o erro descrito na linha que contém:
Code: Select all
1 MsgHMGError ("Erro de abertura do arquivo de imagem de 'TelaLogin'. Programa será encerrado imediatamente." )
Code: Select all
1 #define Loginhmg hb_DirBase() + "logo\TLogin.bmp"
Code: Select all
1 LOGIN_HMG(Loginhmg)
Só funciona dessa forma. Mas pra isso, a imagem TLOGIN.BMP precisa estar na pasta LOGO, não fica indexada dentro do .EXE.
Mais, informações, abri um link de discussão no fórum PCTOLEDO (no Brasil) que tem nos ajudado e muito.O que faço pra resolver ou onde está o "erro óbivio" que não consigo ver?
O link do tópico é:
http://www.pctoledo.com.br/forum/viewto ... 45&t=25032