Página 1 de 1
TableMaker
Enviado: 12 Nov 2012 23:10
por Pablo César
Disponibilizei um aplicativo para auxiliar na confecção do Table utilizado aqui entre tags, na seção de Downloads em:
Aqui
É definido o numero de coluna e de linhas e após preenchido é gerado, visualizado e disponibilizado na área de transferência, pronto para ser colado no tópico aqui no fórum.
Mas estou com um probleminha, que ainda não consegui resolver. Após gera, visualizar e fechar a janela de visualização, se eu quiser continuar outra tabela, dá um erro grave:
Alguém saberia me dizer o que pode estar acontecendo com o ActiveX ? Talvez não esteja fechando adequadamente ? Ou faltando algum comando para encerrar direito a sessão ? Agradeço qualquer dica.
TableMaker
Enviado: 14 Nov 2012 12:54
por rochinha
Amiguinho,
Estou a disposição para debater sobre o assunto, Activex e HTML muito me interessam.
TableMaker
Enviado: 14 Nov 2012 13:03
por Pablo César
Oi Rochinha. Pois é, tive problemas com a primeira versão do TableMaker, pois após a primeira visualização do arquivo html que o fazia sem problemas (um pouco lento só), mas quando quando clicava para gerar pela segunda vez, dava esse erro que mostrei na minha mensagem anterior. Parece que o arquivo html, não era liberado, mesmo utilizando DestroyWindow( ::hWnd ) e AtlAxWinEnd() das classes no ATxPrg.prg. Afirmo que não liberava o arquivo html, porque mesmo após carregá-lo eu não conseguia deletar o arquivo, já que é um arquivo temporário. Então o jeito que eu dei, foi abri-lo no navegador e ai sim funcionou beleza, tanto foi mais rápido como consegue deletar o arquivo Temp.html.
Deixo em anexo a primeira versão, se quiser dar uma olhada. E ficarei atento aos seus comentários sobre o tema.
TableMaker
Enviado: 14 Nov 2012 17:10
por rochinha
Amiguinho,
Publique a vari[avel
oWActiveX.
Coloque no evento
NOINIT da
window principal o trecho:
Código: Selecionar todos
oWActiveX := TActiveX():New( "Form_3", "Shell.Explorer.2" , 00 , 00 , ;
GetProperty( "Form_3" , "width" ) - 05 , GetProperty( "Form_3" , "height" ) - 80 )
Desabilite em
fOpenActivex() as linhas como segue:
Código: Selecionar todos
Function fOpenActivex()
Local cCurFolder:=StrTran(GetCurrentFolder(), '\', '/' )
WaitWindow("Carregando a tabela...", .T. )
//oWActiveX := TActiveX():New( "Form_3", "Shell.Explorer.2" , 00 , 00 , ;
// GetProperty( "Form_3" , "width" ) - 05 , GetProperty( "Form_3" , "height" ) - 80 )
oActiveX := oWActiveX:Load()
oActiveX:Navigate( "file:///"+cCurFolder+"/Temp.html" )
WaitWindow()
Contando()
Return Nil
Pelo fato de estar instanciando toda vez o mesmo controle voce pode forçar ao aumento de carga ou chamadas.
Ao abrir o controle pelo
INIT de seu
form voce terá o mesmo sempre ativo enquanto trabalha.
TableMaker
Enviado: 14 Nov 2012 23:08
por Pablo César
Grande Rochinha escreveu:Pelo fato de estar instanciando toda vez o mesmo controle voce pode forçar ao aumento de carga ou chamadas.
Ao abrir o controle pelo INIT de seu form voce terá o mesmo sempre ativo enquanto trabalha.
Isso mesmo ! Deu certo, só que tive que fazer do meu jeito. Porque abrindo o ActiveX no inicio, o Form_3 ainda não está definido e daria muito trabalho para contornar. Então fiz com que executasse apenas uma vez, assim:
Código: Selecionar todos
Function fOpenActivex()
Local cCurFolder:=StrTran(GetCurrentFolder(), '\', '/' )
WaitWindow("Carregando a tabela...", .T. )
If nVez=0 // esecuta apenas uma vez
oWActiveX := TActiveX():New( "Form_3", "Shell.Explorer.2" , 00 , 00 , ;
GetProperty( "Form_3" , "width" ) - 05 , GetProperty( "Form_3" , "height" ) - 80 )
nVez:=nVez+1
Else
Adjust() // aqui ajeita o tamanho da janela
Endif
oActiveX := oWActiveX:Load()
oActiveX:Navigate( "file:///"+cCurFolder+"/Temp.html" )
WaitWindow()
Contando()
Return Nil
E depois na saída do programa, executo:
oWActiveX:Release() para fechar.
Obrigado, colega ! Fica como experiência.