Página 1 de 1

Função que salva todo o ambiente (todos os sets)

Enviado: 28 Ago 2010 15:04
por Stanis Luksys
Olá Pessoal,

Estou com uma dúvida simples, sobre uma função que não consigo me recordar.

É uma função que salva todos os sets, que a gente coloca no inicio do prg, ao invés de ficar salvando com, savescreen(), setcolor(), setcursor(), ela salva tudo e no final é só restaurar...

Eu usava sempre uma função assim, mas não lembro se ela existe nativamente ou se fui eu mesmo que fiz manualmente... Se fui eu já era... Alguém sabe me dizer, ou tem a bendita função?

Abraços!

Re: Função que salva todo o ambiente (todos os sets)

Enviado: 28 Ago 2010 16:36
por Pablo César
Oi Stanis, seria a função SET() ? No NG tem um exemplo:

Código: Selecionar todos

 #include "Set.ch"

 FUNCTION SetAll( aNewSets )
    LOCAL aCurrentSets[_SET_COUNT], nCurrent
    IF ( aNewSets != NIL )   // Set new and return current
       FOR nCurrent := 1 TO _SET_COUNT
          aCurrentSets[nCurrent] := ;
             SET(nCurrent, aNewSets[nCurrent])
       NEXT
    ELSE                     // Just return current
       FOR nCurrent := 1 TO _SET_COUNT
          aCurrentSets[nCurrent] := SET(nCurrent)
       NEXT
    ENDIF
    RETURN (aCurrentSets)
Vjea acho que é isso que você precisa.

Re: Função que salva todo o ambiente (todos os sets)

Enviado: 28 Ago 2010 17:02
por Stanis Luksys
Opa Pablo,

Era isso mesmo, não tenho certeza se eu usava assim, mas isso é extamante o que eu preciso. Só acho que não vou setar nada através desta função, pois me parece um pouco complicado ter que passar todos de uma vez em uma matriz. Na verdade é bem interessante, mas não para o meu propósito atual que envolve dois ou três sets apenas. É um programa que não usa nem banco de dados.

Vou adicionar também um savescreen e restscreen na função, bem como umas variáveis globais. Pro que eu preciso vai ficar excelente desta forma:

Código: Selecionar todos

PROCEDURE Main()
  local aTodosSets := SetAll()
  set isso
  set aquilo

  ... // menu que chama os módulos

  SetAll( aTodosSets )
RETURN 
Parece bobagem passar os sets por fora da função, mas no meu caso vai me dar maior controle...



Valeu mesmo!

Abraços