Problema autualização HMG Extended

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Problema autualização HMG Extended

Mensagem por Softwhouse »

José e Ivanil,
Agradeço a atenção e dedicação ao problema.
As alternativas não resolveram. Durante a digitação o Grid vai sendo carregado, ao digitar um caractér não encontrado o Grid zera, isso está correto, ao teclar backspace é perdido o foco da coluna e acontece o erro.
Consegui uma verão da Minigui do final de 2022, instalada em outro HD. Compilando com ela funciona perfeitamente.
Vou aguardar a correção.
Obrigado.
Fernando
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema autualização HMG Extended

Mensagem por JoséQuintas »

ivanil escreveu:Na verdade, embora o Grigory tenha confirmado o Bug, não acho que seja um bug;
Aqui também, depende do posto de vista.
Considero mais como problema de compatibilidade, mas.....

Os controles em geral não existem enquanto não for ativada a dialog.
Deve ser acionado um create() ou algo assim quando ativa a dialog.
Antes disso, não precisa pressa pra preencher todos os valores.

Tem uma exceção:
Caso os cálculos estejam errados, se forem durante a definição ainda temos a chance de contornar o bug, como chegou a ser feito neste post.

Código: Selecionar todos

_HMG_aControlValue := { 1,1 }
Provavelmente a diferença entre a versão anterior e atual esteja por aí.
Na definição criou default errado porque se baseou no array vazio, que pode sofrer alterações
Na "criação" trabalha com tudo pronto, valores definitivos, é um melhor lugar pra tratar certas coisas.
Pode ser diferente conforme o controle/necessidade do controle.

Tem aquilo de centralizar tudo antes de ativar, etc.
Os parâmetros que mexem com isso, não podem ser deixados pra depois.
Já o valor do browse, só vai ser usado ao desenhar o conteúdo, não é urgente que seja atribuído default antes de ativar dialog/ativar controle.

Para o programador, quanto mais deixar flexível melhor.
Uma coisa é: Tem que fazer assim, porque a LIB obriga assim
Outra coisa é: Faço assim porque acho melhor, pra LIB tanto faz
Uma LIB pode ser considerada muito melhor, só por causa desse detalhe, de onde colocou pra fazer os cálculos e/ou atribuir default, só por mover o bloco de fonte de um lugar para o outro.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema autualização HMG Extended

Mensagem por JoséQuintas »

Softwhouse escreveu:José e Ivanil,
Agradeço a atenção e dedicação ao problema.
As alternativas não resolveram. Durante a digitação o Grid vai sendo carregado, ao digitar um caractér não encontrado o Grid zera, isso está correto, ao teclar backspace é perdido o foco da coluna e acontece o erro.
Consegui uma verão da Minigui do final de 2022, instalada em outro HD. Compilando com ela funciona perfeitamente.
Vou aguardar a correção.
Obrigado.
Aquele Max() que indiquei no início, contornava a criação e o backspace.
Uma coisa é a criação inicial, e outra coisa é durante o uso.
Vamos ver se a correção oficial vai prever as duas situações.
Ou... já passamos a informação pra ele confirmar.

Por coincidência, é até um pouco relacionado com o que coloquei no post anterior: depende de onde for colocado o bloco de "auto-correção".
Precisa durante toda atualização do browse, não apenas no browse inicial.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema autualização HMG Extended

Mensagem por JoséQuintas »

Más notícias:

Essa última não vai ser alterada, porque é compatiblidade com HMG normal.

Fonte alternativo que o Grigory postou

Código: Selecionar todos

#include "minigui.ch"

Function Main
Local aHeadClick [2]
private aRows [10] [2], nColumn := 1

aRows  [1]   := {'Simpson'   , 'Homer'  }
aRows  [2]   := {'Mulder'    , 'Fox'   }
aRows  [3]   := {'Smart'     , 'Max'   }
aRows  [4]   := {'Grillo'    , 'Pepe'  }
aRows  [5]   := {'Kirk'      , 'James' }
aRows  [6]   := {'Barriga'   , 'Carlos' }
aRows  [7]   := {'Flanders'  , 'Ned'    }
aRows  [8]   := {'Smith'     , 'John'   }
aRows  [9]   := {'Pedemonti' , 'Flavio'  }
aRows [10]   := {'Gomez'     , 'Juan'   }

AEVAL(aHeadClick, {| x, i | aHeadClick[ i ] := { |n| SortColumn( n ) }})



   DEFINE WINDOW Form_1 ;
       AT     0,0 ;
       WIDTH  568 ;
       HEIGHT 430 ;
       TITLE 'Pesquisa incremental no Grid' ;
       MAIN ;
       FONT 'Arial' ;
       SIZE 9 ;
;//       ON INIT FillGrid()

       DEFINE LABEL Label_1
              ROW   360
              COL   10
              WIDTH 80
              VALUE 'Pesquisando:'
              VCENTERALIGN .T.
       END LABEL

       DEFINE TEXTBOX Text_1
              ROW   360
              COL   95
              WIDTH 150
              ONCHANGE {||SearchChange()}
       END TEXTBOX

       DEFINE GRID Grid_1
              ROW     10
              COL     10
              WIDTH   420
              HEIGHT  330
              ITEMS aRows
              HEADERS { 'Sobrenome' , 'Nome' }
              WIDTHS  { 80, 180 }
              CELLNAVIGATION .T.
              ONHEADCLICK aHEADCLICK
              ON CHANGE iif( GetProperty( "Form_1", "Grid_1", "ItemCount" ) > 0, nColumn := Form_1.Grid_1.Value [2], )
              // ONDBLCLICK id('Form_1','Grid_1',1)
              VALUE {1,1}
       END GRID


END WINDOW

CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1

Return(Nil)

/*********************************************************/
Procedure SearchChange()
/*********************************************************/
Local  cTxt, nLen, row, xValue
cTxt := GetProperty( 'Form_1' , 'Text_1' , 'Value' )
nLen := Len( cTxt )

xValue := GetProperty( "Form_1", "Grid_1", "Value" )
//Msgbox( Str( xValue[1] ) + " "  + Str( xValue[2] ) )

Form_1.Grid_1.DeleteAllItems

//Procura o texto

For Each row In aRows
    If Upper( cTxt ) = Upper( Left( row [ nColumn ] , nLen ) )
       Form_1.Grid_1.AddItem ( row )
    Endif
Next
Form_1.Grid_1.Value:={1,nColumn}

Return

/*********************************************************/
Procedure FillGrid()
/*********************************************************/
Local i
For i := 1 To Len( aRows )
    Form_1.Grid_1.AddItem ( aRows [ i ] )
Next
Return

/*********************************************************/
Procedure SortColumn(nColumnNo)
/*********************************************************/
Form_1.Grid_1.Refresh
Asort( aRows, , , { | x, y | x[ nColumnNo ] < y[ nColumnNo ] })
Form_1.Grid_1.DeleteAllItems
Aeval( aRows, { | x | Form_1.Grid_1.AddItem( x ) } )
Form_1.Grid_1.Value:= {1,nColumnNo}
Return (Nil)
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/
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Problema autualização HMG Extended

Mensagem por Softwhouse »

Obrigado José, vou testar. Desculpe a demora em responder, tirei alguns dias de folga.
Fernando
Responder