Recursos sobre a Janela Principal

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

scooby
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 03 Jun 2019 09:41
Localização: Belo Horizonte/Minas Gerais

Recursos sobre a Janela Principal

Mensagem por scooby »

Boa Tarde Senhores

Gostaria de tirar 2 dúvidas, para saber se existe a possibilidade de implementação no sistema.
A primeira é se é possível eu criar um grid dentro da minha janela principal, caso um condicional seja atendido, se sim como devo proceder?
E a segunda é semelhante a primeira, eu to criando uma dialog em uma janela principal, para que ela venha a ser uma tela de funcionalidades do banco de dados, porém ao ativar ela... eu não consigo acessar os botões que na janela principal, eu tentei mudar o style da tela, porém não consegui acessar os botões..
Estou usando a criação desta maneira:
Define Dialog oDlgLogSnc From 01,01 TO 19,73 Title "Teste" COLOR "N/W" STYLE WS_POPUP+WS_THICKFRAME+WS_CAPTION+WS_VISIBLE
Activate Dialog oDlgLogSnc Centered

Ambas perguntas, se referem há um único recurso: Estou sincronizando tabelas com a nuvem, porém se houver alguma falha, esse erro seria jogado ou para esse grid na janela principal ou para esse dialog.

Att

Márcio Pinheiro
Anexos
2.png
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Recursos sobre a Janela Principal

Mensagem por asimoes »

A segunda janela não pode ser dialog, tem que ser child, ai você pode acessar a janela main
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
scooby
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 03 Jun 2019 09:41
Localização: Belo Horizonte/Minas Gerais

Recursos sobre a Janela Principal

Mensagem por scooby »

asimoes escreveu:A segunda janela não pode ser dialog, tem que ser child, ai você pode acessar a janela main
Boa Tarde

Muito obrigado asimoes, mudando para mdichild funcionou perfeito, porém na hora que apresentei para gestão, os mesmos disseram que queriam ao invés de um dialog ou windows, sim um grid dentro da janela principal. Para evitar que o usuário feche o processo, já que ele é de certa forma crítico.
Até consegui fazer o que solicitaram, porém agora não consigo utilizar os scrolls do grid criado.
Anexos
3.png
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Recursos sobre a Janela Principal

Mensagem por asimoes »

Olá como é que você está definindo a grid ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Recursos sobre a Janela Principal

Mensagem por Itamar M. Lins Jr. »

Ola!
De qualquer forma basta teclar ALT+F4 que fecha qualquer coisa.
Se é só para esperar, coloca uma barra de progresso.
Ou um outro processo na barra de tarefas, só mandando os avisos do que está fazendo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Recursos sobre a Janela Principal

Mensagem por asimoes »

Olá Márcio ,

Se estamos falando de Minigui é fórum apropriado é a seção MiniGui
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Recursos sobre a Janela Principal

Mensagem por JoséQuintas »

Bom... primeira coisa que me veio à cabeça foi ..... multithread.
Se o processo é crítico e não pode parar, talvez verificar se precisa ou não da janela visível.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
scooby
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 03 Jun 2019 09:41
Localização: Belo Horizonte/Minas Gerais

Recursos sobre a Janela Principal

Mensagem por scooby »

asimoes escreveu:Olá como é que você está definindo a grid ?
*****************************
Procedure CarLogSnc()
Local oBrwLog,;
aVetLog:={{"","","","","","","",""}}
IniVetBrw(aVetLog)
If AtuTabGer({"TabGpg"})
TabGpg->(DbGoTop())
While TabGpg->(!Eof())
If TabGpg->Empresa=vEmpPro.And.;
TabGpg->Data=Dtos(Date()).And.;
TabGpg->TpoProc$"IE"
aVetLog[Len(aVetLog),01]:=TabGpg->TpoProc
aVetLog[Len(aVetLog),02]:=TabGpg->CodProc
aVetLog[Len(aVetLog),03]:=TabGpg->Empresa
aVetLog[Len(aVetLog),04]:=Cvot(TabGpg->Data)
aVetLog[Len(aVetLog),05]:=TabGpg->Hora
aVetLog[Len(aVetLog),06]:=TabGpg->DesProc
aVetLog[Len(aVetLog),07]:=TabGpg->Usuario
aVetLog[Len(aVetLog),08]:=TabGpg->DatLan
Aadd(aVetLog,{"","","","","","","",""})
EndIf
TabGpg->(DbSkip())
End
SelAreAbr("TabGpg",1)
aSort(aVetLog,,Len(aVetLog)-1,{|x,y|x[8]+x[5]>y[8]+y[5]}) // Ordenar em chave primária
EndIf
If Len(aVetLog)>1
@ 30, 0 ListBox oBrwLog Fields "" Of oVentPrinc Size 600, 400 Color "N/W"
oBrwLog:bLine :={||{ aVetLog[oBrwLog:nAt,01],;
aVetLog[oBrwLog:nAt,04],;
aVetLog[oBrwLog:nAt,05],;
aVetLog[oBrwLog:nAt,06],;
aVetLog[oBrwLog:nAt,02]}}
oBrwLog:aHeaders :={"T","Data","Hora","Descrição","Excução"}
oBrwLog:aJustify :={.F.,.F.,.F.,.F.,.F.}
oBrwLog:aColSizes :={15,70,40,400,120}
oBrwLog:nLineStyle:=4
oBrwLog:nClrPane :={||If(oBrwLog:nAt%2==0,CLR_AZUL3,CLR_WHITE)}
oBrwLog:bValid :=.T.
oBrwLog:nStyle := WS_CHILD+WS_BORDER+WS_VISIBLE+WS_VSCROLL+WS_HSCROLL
oBrwLog:SetArray(aVetLog)
oBrwLog:Refresh()
EndIf
Return Nil
Itamar M. Lins Jr. escreveu:Ola!
De qualquer forma basta teclar ALT+F4 que fecha qualquer coisa.
Se é só para esperar, coloca uma barra de progresso.
Ou um outro processo na barra de tarefas, só mandando os avisos do que está fazendo.

Saudações,
Itamar M. Lins Jr.
Olá Itamar, pois é, vou verificar a possibilidade de alterar para a barra de progresso e ver se visualmente fica bom, valeu pela dica.
JoséQuintas escreveu:Bom... primeira coisa que me veio à cabeça foi ..... multithread.
Se o processo é crítico e não pode parar, talvez verificar se precisa ou não da janela visível.
Pois é José, o processo é critico.. caso ocorra uma falha de conexão com o banco ou a internet caia ou até mesmo o usuário efetue uma parada manual do processo, essa informação teria que ficar a vista, para que no primeiro momento o proprio usuário possa identificar o erro e por ventura se precisar a intervenção do suporte o mesmo saiba em qual pé está a sincronização.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Recursos sobre a Janela Principal

Mensagem por asimoes »

Olá eu faria um ajuste nessa leitura, outra coisa isso é um listbox que é diferente de grid

TabGpg->(DbSkip())
Do Events // <-----
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder