Quem tiver conta no hmgforum.com

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

Favor quem tiver conta no hmgforum.com, informar que estou mudando hmg 3 pra objeto.

Não é grande coisa, é praticamente renomear variáveis.
hmg3obj.png
Mas pra dar uma idéia, falta renomear quase 16.000 ocorrências.

É um longo trabalho, vai ser terrível perder as mudanças se sair versão nova.
Além disso, são necessários testes.
As mudanças são totalmente compatíveis, basta usar a qualquer momento, não precisa esperar terminar.

Supondo que testem a cada 200 mudanças ... em caso de pane geral é reavaliar as 200 mudanças, ou até anular as 200 mudanças.
Não vai ser tão simples, depois de milhares de mudanças....

Uma amostra de fonte atual, meio alterado e funcionando:

Código: Selecionar todos

         i := oFormI:Index
			oFormI:IsDeleted         := .T.
			oFormI:Handle            := 0
			oFormI:Name              := ""
			oFormI:IsActive          := .f.
			oFormI:Type              := ""
			oFormI:ParentHandle := 0
			oFormI:InitProcedure     := ""
			oFormI:ReleaseProcedure  := ""
			oFormI:TooltipHandle     := 0
			oFormI:FormContextMenuHandle	:= 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.
			_HMG_SYSDATA [ 82 ] [i] := ''
			_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] := {}
			oFormI:VirtualHeight     := 0
			_HMG_SYSDATA [ 85 ] [i] := ""
			_HMG_SYSDATA [ 86 ] [i] := ""
			oFormI:VirtualWidth      := 0
			_HMG_SYSDATA [ 93 ] [i] := .f.
			_HMG_SYSDATA [ 94 ] [i] := ""
			_HMG_SYSDATA [ 95 ] [i] := ""
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

hmg3obj.png
Uia.
Eram quase 16.000 ocorrências de _HMG_SYSDATA, a variável pública linguição.
Agora menos de 6.000

E ainda funciona !!!

O array... de 508 elementos.... agora só tem 102.
Alterando mais radical e sumindo com o array.
Esses agora já são as propriedades de forms e controles.

Esses tem que ser manual, não dá pro harbour ajudar.

Como definir nome é complicado, apelei pra usar APPnnn, FORMnnn, e CONTROLnnn, conforme a classe destino.
É...... o array _HMG_SYSDATA[66] agora é Form:Name, tem Form:Handle, Form:Index, e Form:FORM100, Form:FORM101, Form:GraphTasks
Depois que decidir um bom nome, será só trocar geral automático, não dá pra ficar errando digitação na mudança.

Comecei, agora quero acabar, fazer o que....
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

resta.png
Restam 3.321
De 15.976 pra 3.321... mais de 15.000 alterações.
Com certeza, aonde deu, usei o harbour pra ajudar.

Apesar da proporção, essas restantes são as que precisam de mais cuidado.
Usando o esquema de compatibilidade, depois de ter resetado várias vezes por bug.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

Aqui tem algo interessante.
Vou alterar isto no final.

Código: Selecionar todos

   T01 :=   _HMG_SYSDATA [ 1 ]      [j]
   T02 :=   _HMG_SYSDATA [   2 ]      [j]
   T03 :=   _HMG_SYSDATA [   3 ]      [j]
   T04 :=   _HMG_SYSDATA [   4 ]   [j]
   T05 :=   _HMG_SYSDATA [ 5 ]      [j]
   T06 :=   _HMG_SYSDATA [ 6 ]      [j]
   T07 :=   _HMG_SYSDATA [ 7 ]      [j]
   T08 :=   _HMG_SYSDATA [ 8 ]      [j]
   T09 :=   _HMG_SYSDATA [ 9 ]      [j]
   T10 :=   _HMG_SYSDATA [ 10 ]   [j]
   T11 :=   _HMG_SYSDATA [ 11 ]   [j]
   T12 :=   _HMG_SYSDATA [ 12 ]   [j]
   T13 :=   _HMG_SYSDATA [ 13 ]      [j]
   T14 :=   _HMG_SYSDATA [ 14 ]      [j]
   T15 :=   _HMG_SYSDATA [ 15 ]      [j]
   T16 :=   _HMG_SYSDATA [ 16 ]      [j]
   T17 :=   _HMG_SYSDATA [ 17 ]      [j]
   T18 :=   _HMG_SYSDATA [ 18 ]      [j]
   T19 :=   _HMG_SYSDATA [ 19 ]      [j]
   T20 :=   _HMG_SYSDATA [ 20 ]      [j]
   T21 :=   _HMG_SYSDATA [ 21 ]      [j]
   T22 :=   _HMG_SYSDATA [ 22 ]      [j]
   T23 :=   _HMG_SYSDATA [ 23 ]   [j]
   T24 :=   _HMG_SYSDATA [ 24 ]   [j]
   T25 :=   _HMG_SYSDATA [ 25 ]      [j]
   T26 :=   _HMG_SYSDATA [ 26 ]   [j]
   T27 :=   _HMG_SYSDATA [ 27 ]      [j]
   T28 :=   _HMG_SYSDATA [ 28 ]      [j]
   T29 :=   _HMG_SYSDATA [ 29 ]   [j]
   T30 :=   _HMG_SYSDATA [ 30 ]      [j]
   T31 :=   _HMG_SYSDATA [ 31 ]      [j]
   T32 :=   _HMG_SYSDATA [ 32 ]      [j]
   T33 :=   _HMG_SYSDATA [ 33 ]      [j]
   T34 :=   _HMG_SYSDATA [ 34 ]      [j]
   T35 :=   _HMG_SYSDATA [ 35 ]      [j]
   T36 :=   _HMG_SYSDATA [ 36 ]      [j]
   T37 :=   _HMG_SYSDATA [ 37 ]   [j]
   T38 :=   _HMG_SYSDATA [ 38 ]      [j]
   T39 :=   _HMG_SYSDATA [ 39 ]      [j]
   T40 :=   _HMG_SYSDATA [ 40 ]      [j]


   _HMG_SYSDATA [ 1 ]      [j] := _HMG_SYSDATA [ 1 ]      [k]
   _HMG_SYSDATA [   2 ]      [j] := _HMG_SYSDATA [   2 ]      [k]
   _HMG_SYSDATA [   3 ]      [j] := _HMG_SYSDATA [   3 ]      [k]
   _HMG_SYSDATA [   4 ]   [j] := _HMG_SYSDATA [   4 ]   [k]
   _HMG_SYSDATA [ 5 ]      [j] := _HMG_SYSDATA [ 5 ]         [k]
   _HMG_SYSDATA [ 6 ]      [j] := _HMG_SYSDATA [ 6 ]      [k]
   _HMG_SYSDATA [ 7 ]      [j] := _HMG_SYSDATA [ 7 ]      [k]
   _HMG_SYSDATA [ 8 ]      [j] := _HMG_SYSDATA [ 8 ]      [k]
   _HMG_SYSDATA [ 9 ]      [j] := _HMG_SYSDATA [ 9 ]      [k]
   _HMG_SYSDATA [ 10 ]   [j] := _HMG_SYSDATA [ 10 ]   [k]
   _HMG_SYSDATA [ 11 ]   [j] := _HMG_SYSDATA [ 11 ]   [k]
   _HMG_SYSDATA [ 12 ]   [j] := _HMG_SYSDATA [ 12 ]   [k]
   _HMG_SYSDATA [ 13 ]      [j] := _HMG_SYSDATA [ 13 ]      [k]
   _HMG_SYSDATA [ 14 ]      [j] := _HMG_SYSDATA [ 14 ]      [k]
   _HMG_SYSDATA [ 15 ]      [j] := _HMG_SYSDATA [ 15 ]      [k]
   _HMG_SYSDATA [ 16 ]      [j] := _HMG_SYSDATA [ 16 ]      [k]
   _HMG_SYSDATA [ 17 ]      [j] := _HMG_SYSDATA [ 17 ]      [k]
   _HMG_SYSDATA [ 18 ]      [j] := _HMG_SYSDATA [ 18 ]         [k]
   _HMG_SYSDATA [ 19 ]      [j] := _HMG_SYSDATA [ 19 ]         [k]
   _HMG_SYSDATA [ 20 ]      [j] := _HMG_SYSDATA [ 20 ]      [k]
   _HMG_SYSDATA [ 21 ]      [j] := _HMG_SYSDATA [ 21 ]      [k]
   _HMG_SYSDATA [ 22 ]      [j] := _HMG_SYSDATA [ 22 ]      [k]
   _HMG_SYSDATA [ 23 ]   [j] := _HMG_SYSDATA [ 23 ]   [k]
   _HMG_SYSDATA [ 24 ]   [j] := _HMG_SYSDATA [ 24 ]   [k]
   _HMG_SYSDATA [ 25 ]      [j] := _HMG_SYSDATA [ 25 ]      [k]
   _HMG_SYSDATA [ 26 ]   [j] := _HMG_SYSDATA [ 26 ]   [k]
   _HMG_SYSDATA [ 27 ]      [j] := _HMG_SYSDATA [ 27 ]      [k]
   _HMG_SYSDATA [ 28 ]      [j] := _HMG_SYSDATA [ 28 ]      [k]
   _HMG_SYSDATA [ 29 ]   [j] := _HMG_SYSDATA [ 29 ]   [k]
   _HMG_SYSDATA [ 30 ]      [j] := _HMG_SYSDATA [ 30 ]      [k]
   _HMG_SYSDATA [ 31 ]      [j] := _HMG_SYSDATA [ 31 ]      [k]
   _HMG_SYSDATA [ 32 ]      [j] := _HMG_SYSDATA [ 32 ]      [k]
   _HMG_SYSDATA [ 33 ]      [j] := _HMG_SYSDATA [ 33 ]      [k]
   _HMG_SYSDATA [ 34 ]      [j] := _HMG_SYSDATA [ 34 ]      [k]
   _HMG_SYSDATA [ 35 ]      [j] := _HMG_SYSDATA [ 35 ]      [k]
   _HMG_SYSDATA [ 36 ]      [j] := _HMG_SYSDATA [ 36 ]      [k]
   _HMG_SYSDATA [ 37 ]   [j] := _HMG_SYSDATA [ 37 ]      [k]
   _HMG_SYSDATA [ 38 ]      [j] := _HMG_SYSDATA [ 38 ]      [k]
   _HMG_SYSDATA [ 39 ]      [j] := _HMG_SYSDATA [ 39 ]      [k]
   _HMG_SYSDATA [ 40 ]      [j] := _HMG_SYSDATA [ 40 ]      [k]


   _HMG_SYSDATA [ 1 ]      [k] := T01
   _HMG_SYSDATA [   2 ]      [k] := T02
   _HMG_SYSDATA [   3 ]      [k] := T03
   _HMG_SYSDATA [   4 ]   [k] := T04
   _HMG_SYSDATA [ 5 ]      [k] := T05
   _HMG_SYSDATA [ 6 ]      [k] := T06
   _HMG_SYSDATA [ 7 ]      [k] := T07
   _HMG_SYSDATA [ 8 ]      [k] := T08
   _HMG_SYSDATA [ 9 ]      [k] := T09
   _HMG_SYSDATA [ 10 ]   [k] := T10
   _HMG_SYSDATA [ 11 ]   [k] := T11
   _HMG_SYSDATA [ 12 ]   [k] := T12
   _HMG_SYSDATA [ 13 ]      [k] := T13
   _HMG_SYSDATA [ 14 ]      [k] := T14
   _HMG_SYSDATA [ 15 ]      [k] := T15
   _HMG_SYSDATA [ 16 ]      [k] := T16
   _HMG_SYSDATA [ 17 ]      [k] := T17
   _HMG_SYSDATA [ 18 ]      [k] := T18
   _HMG_SYSDATA [ 19 ]      [k] := T19
   _HMG_SYSDATA [ 20 ]      [k] := T20
   _HMG_SYSDATA [ 21 ]      [k] := T21
   _HMG_SYSDATA [ 22 ]      [k] := T22
   _HMG_SYSDATA [ 23 ]   [k] := T23
   _HMG_SYSDATA [ 24 ]   [k] := T24
   _HMG_SYSDATA [ 25 ]      [k] := T25
   _HMG_SYSDATA [ 26 ]   [k] := T26
   _HMG_SYSDATA [ 27 ]      [k] := T27
   _HMG_SYSDATA [ 28 ]      [k] := T28
   _HMG_SYSDATA [ 29 ]   [k] := T29
   _HMG_SYSDATA [ 30 ]      [k] := T30
   _HMG_SYSDATA [ 31 ]      [k] := T31
   _HMG_SYSDATA [ 32 ]      [k] := T32
   _HMG_SYSDATA [ 33 ]      [k] := T33
   _HMG_SYSDATA [ 34 ]      [k] := T34
   _HMG_SYSDATA [ 35 ]      [k] := T35
   _HMG_SYSDATA [ 36 ]      [k] := T36
   _HMG_SYSDATA [ 37 ]      [k] := T37
   _HMG_SYSDATA [ 38 ]      [k] := T38
   _HMG_SYSDATA [ 39 ]      [k] := T39
   _HMG_SYSDATA [ 40 ]      [k] := T40
No final vai ser assim:

Código: Selecionar todos

WITH OBJECT oHmgApp()
   oTmp := :aControlList[ J ]
   :aControlList[ J ] := :aControlList[ K ]
   :aControlList[ K ] := oTmp
   :aControlList[ J ]:Index := J
   :aControlList[ K ]:Index  := K
ENDWITH
É interessante isso.
Fica visível que classe é só um formato de variável.
E que o formato pode facilitar a programação.

Por enquanto, pra CONTROLES, que é esse o caso, está funcionando compatível através do array, até o término da mudança.
Como vantagem, não preciso alterar esse fonte agora.
E a vantagem após alterar pra objeto... a mudança de um fonte pro outro mostra uma delas

Cada objeto está em um elemento do array, só preciso trocar os elementos de lugar.
E como o INDEX é a referência da posição, alterar ele também.

Isso depois... por enquanto a classe é só uma passagem pra permitir mudança nos fontes sem quebrar o funcionamento.

Hoje a classe é isto:

Código: Selecionar todos

METHOD Name( ... )               SETGET
METHOD Name( ... )             CLASS _HmgControlclass; RETURN ::SetGetSYSDATA(  2, ... )
Name pega um elemento do array.
Depois VAR Name, e fim do array, a própria classe vai ter o name.

Muito interessante isso.
Talvez possa ser aplicado em telas.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

hmg3.png
Aí por exemplo, é erro esperado.
Reduzi o array pra 40, e tá tentando iniciar o 54.

Código: Selecionar todos

   VAR    APP054                         INIT _GETDDLMESSAGE()
Ele já consta na classe.
Apenas não tinha apagado essa linha.

Os 40 elementos restantes são referentes a controles.
É a última parte que estou mexendo.
Hoje confirmando se tudo ok para os elementos acima de 40.

É isso mesmo.
Não tem mais compatibilidade pra elementos de 40 a 518, viraram classe definitivamente.
Só resta classe "simulada" para os elementos de 40 pra baixo, que são os controles.
Se alterar pra real, nada mais funciona até terminar.
Com a simulada... vou testando...

Seria uma pena perder todas essas alterações.... ou... criar uma nova versão só por não conseguir contato no fórum.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

converte.png
Pra certas coisas, coloco o harbour pra ajudar.
Encontro o padrão e troco automático.

mais de 16.000 alterações.... só com harbour ajudando.
O que sobrar... vai manual mesmo.

Isso deixa claro que é como eu disse:
Alterar pra classe, é como trocar o tipo de variável

Tanto é que um "replace all" está fazendo isso.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

propr.png
Depois da troca.

O que é a propriedade CTRL039 ?
Sei lá... é a mesma que tava no array _HMG_SYSDATA[ 39 ]

A diferença é que agora é oControl:CTRL039, ou pegando da lista de classes ControlByIndex( n ):CTRL039
Ao que parece, contém muita coisa dentro.
Se eu for nomear tudo isso agora... seria um perigo, melhor manter nome compatível.

Código: Selecionar todos

oButton:CTRL039 := xxxxx
ou, seguindo o estilo anterior que cada controle tem um número:

Código: Selecionar todos

ControlByIndex( n ):CTRL039
Lembrando que as variáveis públicas também contém número, caso não saibam.

Lembram disto ?

Código: Selecionar todos

INIT WINDOW JANELACLI
Isso cria a variável pública JANELACLI que contém um número.
No estilo antigo: _HMGSYSDATA[ 66, JANELACLI ) retorna o NAME
No estilo novo: FormByIndex( JANELACLI ):NAME

E se forem várias coisas da janelacli

Código: Selecionar todos

oForm := FormByIndex( JANELACLI )
? oForm:Name
? oForm:Handle
? oForm:Index
? oForm:IsDeleted
? oForm:FORM070 // não defini nome
Lógico, com tudo em classe muitos desses ControlByIndex() poderão ser eliminados e usados diretamente a classe.

Mas está claro aí: só trocando nomes/tipos de variáveis
A idéia foi boa, de como fazer a mudança, mas de um modo geral é trabalho braçal mesmo.
Só usando harbour pra agilizar, e não virar uma eternidade pra fazer a mudança.
Com a vantagem de evitar erros de digitação.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

isdeleted.png
_HMG_SYSDATA[ 13 ] era a propriedade ISdeleted, se o controle foi excluído, CADA controle na lista.
Pra saber sobre o controle era _HMG_SYSDATA[ 13, qualcontrole ]

Na alteração sem saber nome, alterei pra qualcontrole:CTRL013
E agora, esse já tem nome, altero para qualcontrole:IsDeleted

A classe atual, durante mudança:

Código: Selecionar todos

METHOD IsDeleted( ... )          SETGET
METHOD    CTRL013                SETGET
METHOD CTRL013( ... )       CLASS _HmgControlClass; RETURN ::SetGetSYSDATA( 13, ... )
METHOD IsDeleted( ... )        CLASS _HmgControlclass; RETURN ::SetGetSYSDATA( 13, ... )
qualquer coisa que usar no fonte funciona.
Isso permite mudar sem medo.
Processo concluído, alterar IsDeleted pra VAR IsDeleted INIT .F. e processo concluído de mudança pra classe

Achei muito interessante fazer desse jeito.
É tudo pronto, sem estar pronto.
É mudar pra classe, sem perder o funcionamento atual de fonte não alterado.
É testar se deu problema a qualquer momento.
É usar o harbour pra ajudar no serviço.

Acho que na HMG Extended não foi usado um esquema desse tipo, e por isso demorando mais.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

test.png
Se tiver que dar erro.... dá erro
Aí é só resolver.
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

Código: Selecionar todos

      IF i > 0 .AND. ValType ( ControlByIndex( I ):CTRL041 [ 3 ] ) == "A"
Está testando o elemento 3 da propriedade 41, e dá erro.

Código: Selecionar todos

   VAR    CTRL041                INIT Nil  // array --> { OnKeyControlEventProc, OnMouseControlEventProc, ToolTip_CustomDrawData }
Lógico... deixei até a anotação que é um array de 3 elementos, e iniciei como Nil... kkkkk
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

Quem tiver conta no hmgforum.com

Mensagem por JoséQuintas »

gitsoft.png
Pra que serve o GIT ?
Nessas horas faz toda a diferença.

Talvez na troca automática, alterei a variável X pra I
É anular tudo, por via das dúvidas, já que o automático alterou geral.
E fazer de novo automático....

Mas... aproveitar as alterações em classe.

É pra isso que serve o GIT.
Alterações sob controle, fazendo certo ou errado.

E é por isso que eu queria mais gente testando, pra pegar erros mais rápido.
Estou testando só o que posso.
E fica mais fácil localizar o erro quando estamos com a mão na massa.
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/
Responder