HSHADEBUTTON com erro ao fechar janela

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Olá Amigos, estou procurando opções de botões diferentes e achei legal o HSHADEBUTTON. Mas ele está com um problema na hora de fechar a janela (DIALOG), tanto usando um botão para fecha o dialog (oWin:close()) como também pelo botão X da janela. Quando se tenta fechar a janela o programa é encerrado e aparece a mensagem "This application has requested the Runtime to terminate it in an unusual way.".

Estou usando o Harbour (SVN), MingW e HwGui (CVS)... alguém sabe como resolver este problema???

Existe alguma outra opção de botões diferentes com a HwGui (já conheço BUTTON e BUTTONEX)?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Olá Toledo,
Eu não uso no dia a dia esse tipo de botão, mas fiz um teste aqui no meu aplicativo e funcionou beleza. Uso xHarbour 1.2.1 + Bcc + Hwgui(SVN)
Quer postar um exemplo de como está usando para testarmos ?
Tentou compilar o exemplo da Hwgui ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Leonardo, estou pretendendo usar em um programa clipper que estou convertendo para HwGui, mas estou fazendo isto ao poucos, então estou usando modo texto (Clipper - Harbour+gtWvt) com modo grafico (HwGui).
Peguei o exemplo do hshadebutton da pasta samples da HwGui e fiz um teste, usando uma tela inicial modo texto e chamando a janela com os botões, mas dá erro.

Código: Selecionar todos

#Include "hwgui.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"

REQUEST HB_GT_WVT
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

Proc Main()
HB_LANGSELECT("PT")
HB_SetCodePage("PT850")

WVT_SETONTOP()
WVT_SetCodePage(255)
WVT_SetTitle("Exenplo de Botoes")

SET(40,159)
SETMODE(25,80)

Do Case

 case hb_gtinfo(HB_GTI_DESKTOPWIDTH) > 1200
  hb_gtinfo(HB_GTI_FONTWIDTH, 16)
  hb_gtinfo(HB_GTI_FONTSIZE, 27)

 case hb_gtinfo(HB_GTI_DESKTOPWIDTH) > 1023
  hb_gtinfo(HB_GTI_FONTWIDTH, 12)
  hb_gtinfo(HB_GTI_FONTSIZE, 27)

 case hb_gtinfo(HB_GTI_DESKTOPWIDTH) > 799
  hb_gtinfo(HB_GTI_FONTWIDTH, 10 )
  hb_gtinfo(HB_GTI_FONTSIZE, 22 )

 otherwise
  hb_gtinfo(HB_GTI_FONTWIDTH, 8)
  hb_gtinfo(HB_GTI_FONTSIZE, 17)

EndCase

HB_GtInfo( HB_GTI_ALTENTER, .T. )
HB_GtInfo( HB_GTI_CLOSABLE, .F. )

DO WHILE .T.
 @ 10,10 PROMPT " HShadeButton "
 @ 11,10 PROMPT " NiceButton   "
 MENU TO nOp
 IF LASTKEY() = 27
  EXIT
 ENDIF
 DO CASE
  CASE nOp = 1
   Botoes_1()
  CASE nOp = 2
   Botoes_2()
 ENDCASE
ENDDO
Retu

Proc Botoes_1()
Local oBtn1Window, oFont
Local oIco1 := HIcon():AddFile("ok.ico")
Local oIco2 := HIcon():AddFile("cancel.ico")

   PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT 15

   INIT DIALOG oBtn1Window TITLE "Exemplo Shade Button" ;
   ICON oIcon_def ;
   AT 200,0 SIZE 480,220;
      FONT oFont         ;
    STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_MAXIMIZEBOX+DS_CENTER

   @ 10,10 SHADEBUTTON SIZE 100,36 TEXT "Metal" FONT oFont EFFECT SHS_METAL PALETTE PAL_DEFAULT COLORING {200,120,100} SHCOLOR {100,200,120}
   @ 10,50 SHADEBUTTON SIZE 100,36 TEXT "Softbump" FONT oFont EFFECT SHS_SOFTBUMP PALETTE PAL_METAL
   @ 10,90 SHADEBUTTON SIZE 100,36 TEXT "Noise" FONT oFont EFFECT SHS_NOISE  PALETTE PAL_METAL GRANULARITY 33
   @ 10,130 SHADEBUTTON SIZE 100,36 TEXT "Hardbump" FONT oFont EFFECT SHS_HARDBUMP PALETTE PAL_METAL

   @ 120,10 SHADEBUTTON SIZE 100,36 TEXT "HShade" FONT oFont EFFECT SHS_HSHADE PALETTE PAL_METAL
   @ 120,50 SHADEBUTTON SIZE 100,36 TEXT "VShade" FONT oFont EFFECT SHS_VSHADE PALETTE PAL_METAL
   @ 120,90 SHADEBUTTON SIZE 100,36 TEXT "DiagShade" FONT oFont EFFECT SHS_DIAGSHADE  PALETTE PAL_DEFAULT
   @ 120,130 SHADEBUTTON SIZE 100,36 TEXT "HBump" FONT oFont EFFECT SHS_HBUMP  PALETTE PAL_METAL

   // @ 128,0 GROUPBOX "" SIZE 94,75

   @ 230,10 SHADEBUTTON SIZE 100,40 FLAT BITMAP oIco1 COORDINATES 52,0,0,0 ;
         EFFECT SHS_VSHADE  PALETTE PAL_METAL HIGHLIGHT 12
   @ 230,50 SHADEBUTTON SIZE 100,40 FLAT BITMAP oIco2 COORDINATES 52,0,0,0 ;
         EFFECT SHS_VSHADE  PALETTE PAL_METAL HIGHLIGHT 12
   @ 230,90 SHADEBUTTON SIZE 100,40 FLAT ;
         EFFECT SHS_VSHADE  PALETTE PAL_METAL HIGHLIGHT 12
   @ 230,130 SHADEBUTTON SIZE 100,40 FLAT TEXT "Flat" FONT oFont ;
         EFFECT SHS_VSHADE  PALETTE PAL_METAL HIGHLIGHT 12

   @ 340,10 SHADEBUTTON SIZE 100,36 EFFECT SHS_METAL  PALETTE PAL_METAL GRANULARITY 33 ;
         HIGHLIGHT 20 TEXT "Close" FONT oFont ON CLICK {|| EndDialog()}
   @ 340,50 SHADEBUTTON SIZE 100,36 EFFECT SHS_SOFTBUMP  PALETTE PAL_METAL GRANULARITY 33 HIGHLIGHT 20

   ACTIVATE DIALOG oBtn1Window

retu

Func Botoes_2()

retu Nil
Compilei este exemplo com Harbour (SVN), MingW e HwGui (CVS) e também com Harbour (SVN), BCC55 e HwGui (CVS), e nos dois casos acontece o erro ao fechar a janela com os botões.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Olá Toledo,
Coloque as funções e telas da Hwgui em .PRG separado desse .PRG, e tire desse seu .PRG o include: Hwgui.ch
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Leonardo, separei as funções mas mesmo assim continua encerrando o programa com uma mensagem de erro sempre que tento fechar a janela.
Fiz agora um teste, retirando todos as funções HSHADEBUTTON, deixando apenas a janela com um botão normal (BUTTON), ai a janela fecha normalmente e retorna para o programa principal.

Exemplo de janela sem HSHADEBUTTON:

Código: Selecionar todos

#include "hwgui.ch"

Function Botoes_1()
Local oBtn1Window, oFont
Local oIco1 := HIcon():AddFile("ok.ico")
Local oIco2 := HIcon():AddFile("cancel.ico")

   PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT 15

   INIT DIALOG oBtn1Window TITLE "Exemplo Shade Button" ;
   ICON oIcon_def ;
   AT 200,0 SIZE 480,220;
      FONT oFont         ;
    STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_MAXIMIZEBOX+DS_CENTER

   @ 340,10 BUTTON "Close" SIZE 100,36 ON CLICK {|| EndDialog()}

   ACTIVATE DIALOG oBtn1Window

Return Nil
Será que as funções HSHADEBUTTON não funciona com Harbour?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Vou testar agora, da aqui um pouco posto o resultado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Olá Toledo,
Demorou mais sobrou um tempinho para testar e aqui deu certo com Harbour(SVN) + MingW, e compilei usando HBMK2, segue em anexo os arquivos.
Anexos
shadebtn.rar
(658.23 KiB) Baixado 281 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Leonardo, executei o EXE que está no arquivo que você disponibilizou na mensagem anterior, mas mesmo assim continua dando erro ao clicar no botão "Close" ou no X da janela.

Imagem

Log de erro:
Application Internal Error - C:\programa\hwgui\botoes\shadebtn.exe
Terminated at: 2012.06.08 12:08:42
Unrecoverable error 6005: Exception error:

Exception Code:C0000005
Exception Address:0042AC04
EAX:FFFFFFF7 EBX:00FEF62C ECX:FFFFFFFF EDX:00000002
ESI:00FBA01C EDI:00FB0000 EBP:0051E47D
CS:EIP:001B:0042AC04 SS:ESP:0023:0023DEE0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010282
CS:EIP: 8B 69 FC 89 EE 83 E6 03 83 FE 01 0F 84 07 07 00
SS:ESP: 0052EA2D 00000000 00000000 00437F25 00000004 00FBC5D4 0023DFAC 00431FC5 00FEF628 00FEF62C 0051E46A 00FBC5D4 0058B150 00FBC5D4 0023DFAC 0043C408

C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...

Modules:
0x00400000 0x001AD000 C:\programa\hwgui\botoes\shadebtn.exe
0x7C900000 0x000B6000 C:\WINDOWS\system32\ntdll.dll
0x7C800000 0x000FF000 C:\WINDOWS\system32\kernel32.dll
0x64D00000 0x00033000 C:\Arquivos de programas\Alwil Software\Avast5\snxhk.dll
0x77F50000 0x000AB000 C:\WINDOWS\system32\ADVAPI32.DLL
0x77DB0000 0x00092000 C:\WINDOWS\system32\RPCRT4.dll
0x77F20000 0x00011000 C:\WINDOWS\system32\Secur32.dll
0x5D510000 0x00097000 C:\WINDOWS\system32\COMCTL32.DLL
0x77E50000 0x00048000 C:\WINDOWS\system32\GDI32.dll
0x77D20000 0x00090000 C:\WINDOWS\system32\USER32.dll
0x76380000 0x00048000 C:\WINDOWS\system32\COMDLG32.DLL
0x77EA0000 0x00076000 C:\WINDOWS\system32\SHLWAPI.dll
0x77BF0000 0x00058000 C:\WINDOWS\system32\msvcrt.dll
0x7C9C0000 0x0081D000 C:\WINDOWS\system32\SHELL32.dll
0x774C0000 0x0013C000 C:\WINDOWS\system32\OLE32.dll
0x77100000 0x0008C000 C:\WINDOWS\system32\OLEAUT32.DLL
0x72FB0000 0x00026000 C:\WINDOWS\system32\WINSPOOL.DRV
0x76360000 0x0001D000 C:\WINDOWS\system32\IMM32.DLL
0x10000000 0x0002A000 C:\WINDOWS\system32\guard32.dll
0x77BE0000 0x00008000 C:\WINDOWS\system32\VERSION.dll
0x4DDC0000 0x00008000 C:\WINDOWS\system32\fltlib.dll
0x773B0000 0x00102000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
0x5B1C0000 0x00038000 C:\WINDOWS\system32\UxTheme.dll
0x746E0000 0x0004B000 C:\WINDOWS\system32\MSCTF.dll
0x01090000 0x0017A000 C:\WINDOWS\system32\nview.dll
0x76BD0000 0x0000B000 C:\WINDOWS\system32\PSAPI.DLL
0x76B20000 0x0002E000 C:\WINDOWS\system32\WINMM.dll
0x77670000 0x00021000 C:\WINDOWS\system32\NTMARTA.DLL
0x76F40000 0x0002D000 C:\WINDOWS\system32\WLDAP32.dll
0x71BC0000 0x00013000 C:\WINDOWS\system32\SAMLIB.dll
0x77B20000 0x00022000 C:\WINDOWS\system32\apphelp.dll
0x75290000 0x0002E000 C:\WINDOWS\system32\msctfime.ime
0x013D0000 0x00015000 C:\WINDOWS\system32\nvwddi.dll

Called from SHADE_RELEASE(0)
Called from HSHADEBUTTON:END(82) in source\hshbtn.prg
Called from HMAINWINDOW:END(283) in source\hcwindow.prg
Called from ONDESTROY(732) in source\hcwindow.prg
Called from (b)(_INITSTATICS00003)(0) in source\hcwindow.prg
Called from HWINDOW:ONEVENT(263) in source\hcwindow.prg
Called from ONDESTROY(67) in source\hwindow.prg
Called from (b)HMAINWINDOW(229) in source\hwindow.prg
Called from HMAINWINDOW:ONEVENT(411) in source\hwindow.prg
Called from SENDMESSAGE(0)
Called from (b)HWINDOW(115) in source\hwindow.prg
Called from HMAINWINDOW:CLOSE(0) in source\hwindow.prg
Called from (b)MAIN(41) in shadebtn.prg
Called from HSHADEBUTTON:MUP(469) in source\hownbtn.prg
Called from HSHADEBUTTON:ONEVENT(174) in source\hownbtn.prg
Called from HWG_ACTIVATEMAINWINDOW(0)
Called from HMAINWINDOW:ACTIVATE(371) in source\hwindow.prg
Called from MAIN(44) in shadebtn.prg
------------------------------------------------------------------------
O que pode ser? Será que a minha versão do Windows?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Tente instalar o Microsoft Visual C++, geralmente eu uso em clientes por que o PostgreSQL exige das maquinas client. Talvez essa Classe uso algo que precisa que esteja nessa distribuição.
http://www.microsoft.com/en-us/download ... aspx?id=29
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Leonardo, eu já tenho o Microsoft Visual C++ instalado, no meu micro tenho a versão 2010, mas no note tenho a 2008... tentei executar tanto no micro como no note e não deu certo, nos dois é apresentada a mensagem de erro quando fecho a janela com os botões ShadeButton.
Pensei até que seria um problema com a versão do meu Windows XP, mas fiz um teste com o Windows Vista e também com o Seven. O seu EXE no Window XP e Vista dá erro, já no Seven roda normal. Agora o meu exemplo, com tela inicial modo texto e janela DIALOG com os botões (que é o que eu preciso), não funcionou em nenhuma das versões do Windows que testei, sempre dá erro ao fechar a janela com os botões.

Sem ser o ShadeButton, NiceButton ou ButtonEx, você conhece algum outro Button diferente para HwGui?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Olá Toledo,
Não conheço outros botão não.

Testei em um Windows 2003 e peguei o erro aqui, vou postar no Developer da Hwgui o erro.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por sygecom »

Toledo,
Fui ver o erro e comentei apenas a linha 82 do hshbtn.prg e gerei as lib da Hwgui e compilei o exemplo e deu tudo certo.
Anexos
shadebtn.rar
(606.53 KiB) Baixado 176 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HSHADEBUTTON com erro ao fechar janela

Mensagem por Toledo »

Leonardo, perfeito... funcionou certinho!

Obrigado pela ajuda!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder