Isto mostra que as alterações estão surtindo efeito.
O erro era esperado.
Hoje achei melhor alterar form:Active pra form:IsActive.
Esqueci de alterar na classe, então deu falta.
Também alterei form:Deleted pra form:IsDeleted
O importante do erro é: é erro esperado, fácil de resolver, só alterar o nome.
Por isso seria interessante vários usuários pra testar, encima de aplicativos prontos.
Pra usar o máximo de opções possíveis.
Seria só compilar e rodar o aplicativo, nada mais, sem mexer em fontes.
Uma alteração recente é mais fácil de localizar.
Em caso extremo, só anular a alteração recente e fazer de novo.
Precisa muuuito cuidado.
Estou encontrando possíveis bugs, mas nem estou mexendo nisso ainda.
Considerando que, se estão usando, o bug não é problema.
Numa determinada rotina, testa se GraphTasks é array, mas em outras não tem esse teste.
Provavelmente em algum tempo deu erro, e corrigiram só a parte que deu erro.
Mas uma vez isso na classe, depois dá pra colocar a validação na classe, e limpar todos os testes de outros fontes.
Uma idéia de como isso vai longe, oForm é onde já alterei
Código: Selecionar todos
oForm := oHmgApp():FormByIndex( i )
oForm:IsDeleted := .T.
oForm:Handle := 0
oForm:Name := ""
oForm:IsActive := .f.
oForm:Type := ""
oForm:ParentHandle := 0
_HMG_SYSDATA [ 72 ] [i] := ""
oForm:ReleaseProcedure := ""
_HMG_SYSDATA [ 73 ] [i] := 0
_HMG_SYSDATA [ 74 ] [i] := 0
_HMG_SYSDATA [ 75 ] [i] := ""
_HMG_SYSDATA [ 76 ] [i] := ""
_HMG_SYSDATA [ 77 ] [i] := ""
_HMG_SYSDATA [ 78 ] [i] := ""
_HMG_SYSDATA [ 79 ] [I] := Nil
_HMG_SYSDATA [ 80 ] [i] := ""
_HMG_SYSDATA [ 81 ] [i] := .F.
oForm:NotifyIconName := ''
_HMG_SYSDATA [ 83 ] [i] := ''
_HMG_SYSDATA [ 84 ] [i] := ''
_HMG_SYSDATA [ 87 ] [i] := 0
_HMG_SYSDATA [ 88 ] [I] := 0
_HMG_SYSDATA [ 89 ] [i] := {}
_HMG_SYSDATA [ 90 ] [i] := {}
oForm:VirtualHeight := 0
_HMG_SYSDATA [ 85 ] [i] := ""
_HMG_SYSDATA [ 86 ] [i] := ""
oForm:VirtualWidth := 0
_HMG_SYSDATA [ 93 ] [i] := .f.
_HMG_SYSDATA [ 94 ] [i] := ""
_HMG_SYSDATA [ 95 ] [i] := ""
_HMG_SYSDATA [ 96 ] [i] := ""
_HMG_SYSDATA [ 97 ] [i] := ""
_HMG_SYSDATA [ 98 ] [i] := ""
_HMG_SYSDATA [ 99 ] [i] := ""
_HMG_SYSDATA [ 100 ] [i] := 0
_HMG_SYSDATA [ 101 ] [i] := 0
oForm:GraphTasks := {}
_HMG_SYSDATA [ 103 ] [i] := Nil
_HMG_SYSDATA [ 104 ] [i] := Nil
oForm:AutoRelease := .F.
_HMG_SYSDATA [ 106 ] [i] := ""
_HMG_SYSDATA [ 107 ] [i] := 0
_HMG_SYSDATA [ 108 ] [i] := NIL
_HMG_SYSDATA [ 504 ] [i] := { NIL, NIL, NIL, NIL}
_HMG_SYSDATA [ 511 ] [i] := 0
_HMG_SYSDATA [ 512 ] [i] := { NIL, NIL, NIL, NIL, NIL, NIL, NIL }
e deixando este pra depois
Código: Selecionar todos
oHmgApp():AddForm( oHmgApp():FormCount + 1 )
aAdd ( _HMG_SYSDATA [ 66 ] , FormName ) // don't change
aAdd ( _HMG_SYSDATA [ 67 ] , FormHandle )
aAdd ( _HMG_SYSDATA [ 68 ] , .f. )
aAdd ( _HMG_SYSDATA [ 69 ] , cType )
aAdd ( _HMG_SYSDATA [ 70 ] , If ( panel , Parenthandle , 0 ) )
aAdd ( _HMG_SYSDATA [ 71 ] , ReleaseProcedure )
aAdd ( _HMG_SYSDATA [ 72 ] , InitProcedure )
aAdd ( _HMG_SYSDATA [ 73 ] , htooltip )
aAdd ( _HMG_SYSDATA [ 74 ] , 0 )
aAdd ( _HMG_SYSDATA [ 75 ] , MouseDragProcedure )
aAdd ( _HMG_SYSDATA [ 76 ] , SizeProcedure )
aAdd ( _HMG_SYSDATA [ 77 ] , ClickProcedure )
aAdd ( _HMG_SYSDATA [ 78 ] , MouseMoveProcedure )
aAdd ( _HMG_SYSDATA [ 65 ] , .f. )
aAdd ( _HMG_SYSDATA [ 79 ] , aRGB )
aAdd ( _HMG_SYSDATA [ 80 ] , PaintProcedure )
aAdd ( _HMG_SYSDATA [ 81 ] , noshow )
aAdd ( _HMG_SYSDATA [ 82 ] , NotifyIconName )
aAdd ( _HMG_SYSDATA [ 83 ] , NotifyIconToolTip )
aAdd ( _HMG_SYSDATA [ 84 ] , NotifyIconLeftClick )
aAdd ( _HMG_SYSDATA [ 85 ] , GotFocus )
aAdd ( _HMG_SYSDATA [ 86 ] , LostFocus )
aAdd ( _HMG_SYSDATA [ 87 ] , 0 )
aAdd ( _HMG_SYSDATA [ 88 ] , 0 )
aAdd ( _HMG_SYSDATA [ 89 ] , {} )
aAdd ( _HMG_SYSDATA [ 90 ] , {} )
aAdd ( _HMG_SYSDATA [ 91 ] , VirtualHeight )
aAdd ( _HMG_SYSDATA [ 92 ] , VirtualWidth )
aAdd ( _HMG_SYSDATA [ 93 ] , .f. )
aAdd ( _HMG_SYSDATA [ 94 ] , ScrollUp )
aAdd ( _HMG_SYSDATA [ 95 ] , ScrollDown )
aAdd ( _HMG_SYSDATA [ 96 ] , ScrollLeft )
aAdd ( _HMG_SYSDATA [ 97 ] , ScrollRight )
aAdd ( _HMG_SYSDATA [ 98 ] , HScrollBox )
aAdd ( _HMG_SYSDATA [ 99 ] , VScrollBox )
aAdd ( _HMG_SYSDATA [ 100 ] , BrushHandle )
aAdd ( _HMG_SYSDATA [ 101 ] , 0 )
aAdd ( _HMG_SYSDATA [ 102 ] , {} )
aAdd ( _HMG_SYSDATA [ 103 ] , MaximizeProcedure )
aAdd ( _HMG_SYSDATA [ 104 ] , MinimizeProcedure )
aAdd ( _HMG_SYSDATA [ 105 ] , .Not. NoAutoRelease )
aAdd ( _HMG_SYSDATA [ 106 ] , InteractiveCloseProcedure )
aAdd ( _HMG_SYSDATA [ 107 ] , 0 )
aAdd ( _HMG_SYSDATA [ 108 ] , NIL )
aAdd ( _HMG_SYSDATA [ 504 ] , {x, y, w, h})
aAdd ( _HMG_SYSDATA [ 511 ] , hWnd_ToolTip )
aAdd ( _HMG_SYSDATA [ 512 ] , { NIL, NIL, NIL, NIL, NIL, NIL, NIL } )
Parece igual, mas não é.
O primeiro apenas atribui valor ao que já existe.
O segundo adiciona elemento em cada array, são variáveis diferentes adicionando elemento que não existe.
Tem isso pelo menos 3 vezes em forms, o if/else adicionando ou não.
Talvez mover pra classe pra adicionar elementos, mas precisa ser com conteúdo válido, mesmo que "vazio"
zero aonde número, {} aonde array, "" aonde string, etc.
Pois é... mais de 500 elementos, pra alterar um por um em todo fonte....
Tem que ser um por vez, senão os nomes começam a se bagunçar na cabeça.
Vai fazer o 67 handle... é procurar 67 em todos os fontes.
é procurar em todos os fontes, alterar, procurar de novo, alterar, procurar de novo... sempre passa algum.
E depois que terminar... não significa que terminou... podem ter rotinas dependentes do SYSDATA ainda.
Nessa primeira fase de mudança, tanto faz, tá sempre compatível.
Só nos blocos acima poderão ser meses pra mexer.
Se fosse mudar pra HASH... vixe... já acabaria toda compatibilidade logo na primeira alteração.
Entendeu ?
É alterar uma coisa em qualquer fonte, e continuar usando.
Não tem nenhum tempo de espera pra usar minigui alterada.
Tudo correndo bem, ninguém nem vai notar diferença.
A qualquer momento pode parar ou continuar as alterações, não perde nada, tá tudo sempre rodando.