VALOR NAO MUDA
Olá a todos
Tenho várias forms e uma delas, a form8, contém 60 images designadas por Image1(0), Image1(1), ... etc.
De cada uma das forms pode aceder-se à form8 para mostrar as imagens a partir de um certo valor, de cada form inicia-se numa imagem diferente.
Por exemplo, na form3, acede-se à form8 e a primeira imagem a ser mostrada é a Image(35).
Na form6 acede-se à form8 e a primeira imagem a ser mostrada é a Image(27), etc.
Para isso, num módulo, coloquei
Public Página As Integer
Em cada botão das várias forms que conduzem à form8 coloquei
Na form3, Página=35
Na form6, Página=27
Em Form.load da form8, escrevi
n = Página
Image1(n).Visible = True
Acontece que Funciona bem à primeira.
Quando vou aceder de novo à form8 a partir de outra form, o valor de Página é o anterior.
Só Ã segunda tentativa o valor muda.
O erro está em que quando saio com unload form8 não é apagado o valor de Página.
Alguém me pode ajudar?
Obrigado desde já.
Tenho várias forms e uma delas, a form8, contém 60 images designadas por Image1(0), Image1(1), ... etc.
De cada uma das forms pode aceder-se à form8 para mostrar as imagens a partir de um certo valor, de cada form inicia-se numa imagem diferente.
Por exemplo, na form3, acede-se à form8 e a primeira imagem a ser mostrada é a Image(35).
Na form6 acede-se à form8 e a primeira imagem a ser mostrada é a Image(27), etc.
Para isso, num módulo, coloquei
Public Página As Integer
Em cada botão das várias forms que conduzem à form8 coloquei
Na form3, Página=35
Na form6, Página=27
Em Form.load da form8, escrevi
n = Página
Image1(n).Visible = True
Acontece que Funciona bem à primeira.
Quando vou aceder de novo à form8 a partir de outra form, o valor de Página é o anterior.
Só Ã segunda tentativa o valor muda.
O erro está em que quando saio com unload form8 não é apagado o valor de Página.
Alguém me pode ajudar?
Obrigado desde já.
No evento Unload do Form8 tente isso:
Set Form8 = Nothing
Obrigado pela resposta.
Tentei e não resultou.
Estive a ver as instruções do VB e dizem que unload não apaga o valor das variáveis.
Acho que está aqui o problema.
Deve-se apagar, mas como ?
Também o valor de Página é transferido à primeira mas das vezes seguintes só é à segunda.
Tentei e não resultou.
Estive a ver as instruções do VB e dizem que unload não apaga o valor das variáveis.
Acho que está aqui o problema.
Deve-se apagar, mas como ?
Também o valor de Página é transferido à primeira mas das vezes seguintes só é à segunda.
Faz o seguinte. No primeiro Load do programa põe n = 0. Isso se essa variável está declarada em módulo como pública, senão põe no Load ou Unload de onde ela estiver declarada.
Obrigado pela resposta.
Também não resultou.
Também não resultou.
Confesso que me perdi na explicação.
Você já tentou ZERAR n antes de atribuir outro valor a ele?
Você já tentou ZERAR n antes de atribuir outro valor a ele?
o problema é meio que complicado de se explicar tem de se estudar bem o caso para se fazer a forma correta.
então vamos lá
antes de mais nada temos de informar os colegas que os images já estão no form todos carregados porém coma propriedade visible = false
então como dito pelo colega quando ele chama este form um dos images fica visible igual a true.
para resolver
no unload do form8
então vamos lá
antes de mais nada temos de informar os colegas que os images já estão no form todos carregados porém coma propriedade visible = false
então como dito pelo colega quando ele chama este form um dos images fica visible igual a true.
para resolver
no unload do form8
For F = 0 to Image1.Ubound
Image1(f).Visible = False
Next f
Enquanto agora cá se fez dia, aà é noite. Só agora vi as últimas três respostas que agradeço muito.
Porém, nenhuma resultou.
A do Marcelo-treze parecia muito lógica mas não funciona.
Quando acedo à form8 que contém as images da primeira vez, mandando o valor de n, funciona bem. Se mando com n=3, mostra a image(3). Por uma questão de simplicidade a zero e a um são iguais e é mesmo o número que comanda.
Apago a form8 e vou à form4.
Chamo de novo a form8, com n=10. Mostra a image(3) e não a image(10). O valor 3 continuava memorizado na form8.
Se apagar a form8 e tornar a chamar já mostra a 10.
Sem dúvida que é necessário apagar o valor de n quando se faz o unload da form8 mas nenhuma das formas que me indicaram funciona.
As instruções do VB dizem que Unload não apaga os valores das varià veis e parece ser por isso que isto não está a funcionar.
Só apaga se as variáveis estiverem num array efectuado em tempo de execução.
Parece então que o valor de n deveria entrar num array colocado na form8 em run-time.
Mas, como é que isso se faz?
Obrigado a todos.
Porém, nenhuma resultou.
A do Marcelo-treze parecia muito lógica mas não funciona.
Quando acedo à form8 que contém as images da primeira vez, mandando o valor de n, funciona bem. Se mando com n=3, mostra a image(3). Por uma questão de simplicidade a zero e a um são iguais e é mesmo o número que comanda.
Apago a form8 e vou à form4.
Chamo de novo a form8, com n=10. Mostra a image(3) e não a image(10). O valor 3 continuava memorizado na form8.
Se apagar a form8 e tornar a chamar já mostra a 10.
Sem dúvida que é necessário apagar o valor de n quando se faz o unload da form8 mas nenhuma das formas que me indicaram funciona.
As instruções do VB dizem que Unload não apaga os valores das varià veis e parece ser por isso que isto não está a funcionar.
Só apaga se as variáveis estiverem num array efectuado em tempo de execução.
Parece então que o valor de n deveria entrar num array colocado na form8 em run-time.
Mas, como é que isso se faz?
Obrigado a todos.
Seria melhor vc postar os códigos envolvidos no seu problema para podermos analisar e reproduzir aqui.
Trata-se de um programa sobre fractais e que os constrói. Abrange todos os tipos e cada um está em sua página.
As instruções têm 70 páginas e estão em “caixas de textoâ€, cada uma na sua Image(n).
Todas elas estão colocadas na form8.
Eu quero que quando se chamem as instruções se vá Ã s que respeitam o tipo de fractal que o utilizador está a ver.
Por exemplo,
Os atractores estão na form16. As instruções dos atractores começam na Image(41) da form8.
Os L-Sistemas estão na form9. As instruções dos L-Sistemas começam na Image(53) da form8.
Cada form tem um botão que conduz à s instruções que devem ser vistas a partir da sua Image inicial. Depois há botões para fazer mostrar as seguintes.
Pois bem, o que acontece é o seguinte: admitamos que estou na form16 com os atractores. Primo o botão para ver as instruções e ele mostra-me a form8 com a image(41) correctamente.
Eu fecho a form8 e vou aos L-Sistemas. Primo o botão para as instruções. Ele mostra-me a form8 com a Image(41) anterior e não com a Image(53).
Apagando a form8 e voltando a chamá-la já mostra correctamente a Image(53).
Isto quer dizer que fazendo o unload da form8 se manteve o valor da imagem, não foi apagado e deveria ter sido.
O código é o seguinte:
Em form16, para ir ver as instruções
Página = 41
Form8.Visible = True
Em form9 para ir ver as instruções:
Página = 53
Form8.Visible = True
Em form8, onde mostra as instruções:
Em Form Load
For n = 0 To 70
Image1(n).Top = 120
Image1(n).Left = 180
Image1(n).Visible = False
Next n
n = Página
Image1(n).Visible = True
Para fechar a form8 há um botão com o código
Unload Form8
Form8.Visible = False
Já experimentei as sugestões dos posts anteriores e não resultam.
As instruções têm 70 páginas e estão em “caixas de textoâ€, cada uma na sua Image(n).
Todas elas estão colocadas na form8.
Eu quero que quando se chamem as instruções se vá Ã s que respeitam o tipo de fractal que o utilizador está a ver.
Por exemplo,
Os atractores estão na form16. As instruções dos atractores começam na Image(41) da form8.
Os L-Sistemas estão na form9. As instruções dos L-Sistemas começam na Image(53) da form8.
Cada form tem um botão que conduz à s instruções que devem ser vistas a partir da sua Image inicial. Depois há botões para fazer mostrar as seguintes.
Pois bem, o que acontece é o seguinte: admitamos que estou na form16 com os atractores. Primo o botão para ver as instruções e ele mostra-me a form8 com a image(41) correctamente.
Eu fecho a form8 e vou aos L-Sistemas. Primo o botão para as instruções. Ele mostra-me a form8 com a Image(41) anterior e não com a Image(53).
Apagando a form8 e voltando a chamá-la já mostra correctamente a Image(53).
Isto quer dizer que fazendo o unload da form8 se manteve o valor da imagem, não foi apagado e deveria ter sido.
O código é o seguinte:
Em form16, para ir ver as instruções
Página = 41
Form8.Visible = True
Em form9 para ir ver as instruções:
Página = 53
Form8.Visible = True
Em form8, onde mostra as instruções:
Em Form Load
For n = 0 To 70
Image1(n).Top = 120
Image1(n).Left = 180
Image1(n).Visible = False
Next n
n = Página
Image1(n).Visible = True
Para fechar a form8 há um botão com o código
Unload Form8
Form8.Visible = False
Já experimentei as sugestões dos posts anteriores e não resultam.
Tópico encerrado , respostas não são mais permitidas