JoséQuintas escreveu:
Problemas malucos, soluções malucas.... compile os dois juntos pra ver o que dá.
acho que ou o amigo não entendeu ,ou eu não entendi o que o amigo sugeriu
eu crio abro as tabelas e crio os indices de maneira igual tanto na compilação 100% console "gtwvt", como na versão grafica "hmg"
so da pau se eu abrir um grafico e um console, se eu abrir varias instancias do console não a problema, como tambem se eu abrir varias instancias do grafico
tambem não da pau
ja li , re li a função que abro a dbf e os indices e não vejo erros
abaixo esta um pequeno exemplo de como abro os indices no modo grafico e no modo console
// Modo grafico com a minigui
#include 'minigui.ch'
#include "rddleto.ch"
Function Net_use()
parameters cFiledbf,cAlias,cFilecdx,lexcl,lretry
private lforever
private aFilecdx
private bFilecdx
private bFiledbf
private nomearq
lretry := iif(type("lretry") != "N",500,lretry)
lexcl := iif(type("lexcl") != "L",.F.,lexcl)
lforever := lretry == 0
bFiledbf:= cFiledbf+'.DBF'
cFiledbf := PathLeto+cFiledbf+'.DBF'
aFilecdx:= cFilecdx+".CDX"
bFilecdx:= cFilecdx //"MCOCUP"
cFilecdx := PathLeto+cFilecdx+'.CDX' //"MCOCUP.CDX"
cDriver := "LETO"
if !vFile(bFiledbf)
msginfo("VERIFIQUE SE O SERVIDOR ESTA LIGADO OU A CONEXAO ESTA ATIVA "+bFiledbf)
quit
endif
protect (bFiledbf,"D")
do while (lretry > 0 .or. lforever)
if (lexcl)
DbUseArea( .T., cDriver, cFiledbf, cAlias, .F. )
else
DbUseArea( .T., cDriver, cFiledbf, cAlias, .T. )
* msgdebug(cfiledbf)
endif
if (Used())
exit
endif
lretry =- 1
enddo
if (Used())
*-------------------------------------------
if (bFilecdx = "MCOCUP")
if (!vFile(aFilecdx))
nomearq := bFilecdx
index on sui tag sui to (cFilecdx)
endif
DbSetIndex( cFileCdx )
endif
endif
// modo console
#include "rddleto.ch"
Function Net_use
parameters cFiledbf,cAlias,cFilecdx,lexcl,lretry
private lforever
private aFilecdx
private bFilecdx
private bFiledbf
private nomearq
lretry:= iif(Type("lretry") != "N", 500, lretry)
lexcl:= iif(Type("lexcl") != "L", .F., lexcl)
lforever:= lretry == 0
bFiledbf:= cFiledbf+'.DBF'
cFiledbf := PathLeto+cFiledbf+'.DBF'
aFilecdx:= cFilecdx+".CDX"
bFilecdx:= cFilecdx //"MCOCUP"
cFilecdx := PathLeto+cFilecdx+'.CDX' //"MCOCUP.CDX"
cDriver := "LETO"
if !vFile(bFiledbf)
alert("VERIFIQUE SE O SERVIDOR ESTA LIGADO OU A CONEXAO ESTA ATIVA "+bFiledbf)
quit
endif
protect(bFiledbf, "D")
do while (lretry > 0 .or. lforever)
if (lexcl)
DbUseArea( .T., cDriver, cFiledbf, cAlias, .F. )
else
DbUseArea( .T., cDriver, cFiledbf, cAlias, .T. )
endif
if (used())
exit
endif
corantig:= SetColor()
cor("menu")
if (mens(24, 11, "Arquivo nao liberado... AGUARDE ", 1) == 27)
set color to "&corantig"
exit
endif
set color to "&corantig"
lretry:= lretry - 1
enddo
if (used())
o_cor:= SetColor()
set color to (contecor[4])
**
if (bFileCdx = "MCOCUP")
if (totarq != 0)
@ 13, 40 say Space(27)
@ 13, 40 say "Ocupacoes"
endif
if (!vFile(aFilecdx))
if (totarq != 0)
@ 13, 40 say Space(27)
@ 13, 40 say "Indexando Ocupacoes"
endif
nomearq:= bFileCdx
oldcor:= SetColor()
oldtela:= SaveScreen(19, 14, 20, 70)
set color to (contecor[4])
index on sui tag sui to (cFileCdx)
set color to (oldcor)
RestScreen(19, 14, 20, 70, oldtela)
if (totarq != 0)
recat:= recat + 100 / totarq
termoh2(recat)
endif
else
if (totarq != 0)
recat:= recat + 100 / totarq
termoh2(recat)
endif
endif
DbSetIndex( cFileCdx )
endif
endif
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui