Página 1 de 1

Variável private

Enviado: 07 Dez 2009 16:18
por MARCELOG
Olá pessoal,
como é o funcionamento da variável private?
É que criei explicitamente uma variável private e associei um controle tsbrowse à mesma no prg1.
Todas as funções criadas nesse prg1 que utilizam dados vinculados à variável funcionam normalmente.
Daí chamo uma função qualquer.
Entretanto, essa função foi criada no prg2 e também utiliza dados vinculados à variável criada no prg1.
Só que não está sendo possível acessar os dados dessa variável corretamente.
Pelo que sei, a partir da criação de uma variável private ela é visível em todo o processamento e nas funções chamadas também a partir da sua criação.
Será que esse comportamento é restrito ao prg em que foi criada?
Tem como alterar?
É que não queria ter que enviar a variável para a função criada no outro prg, seja por valor ou referência.

Obrigado.

MarceloG

Re: Variável private

Enviado: 07 Dez 2009 16:30
por Maligno
O conteúdo de uma variável private é conhecido na função que a criou e em todas as demais funções chamadas a partir dela. Quando a função criadora morrer, morre também o escopo dessa variável. Portanto, não é global. Nem mesmo em nível de PRG.

No Clipper é assim. No [x]Harbour tem de ser assim também. Esse comportamento não depende de uma forma diferente de compilação. É assim nativamente.

Re: Variável private

Enviado: 12 Dez 2009 19:19
por sygecom
MarceloG o xHarbour e Harbour funciona como o antigo Clipper, então nesse seu caso a sua variável deve sim aparecer nas funções para frente de onde iniciou as PRIVATE.