Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoeFather

Como alterar a unidade

Recommended Posts

Fala gente!

 

Não sei se vou conseguir me fazer explicar, mas lá vai! :)

 

Fiz um jogo de 21 no Access usando programação em Visual Basic e para não carregar muito o programa, não coloquei as imagens das cartas invisíveis dentro do formulário e deixei-as no diretório do jogo: "C:\21\"

O problema é que dentro do formulário eu criei as imagens sem endereço, que só vão sendo direcionadas conforme a necessidade, ou seja, se o programa selecionou o Ás de Ouros, a imagem correspondente será carregada, indo buscar no diretório citado acima.

Minha pergunta: como posso fazer para, ao rodar o programa, o mesmo verificar o caminho onde as imagens foram descompactas? Tem jeito?

Agora se não, que dica os amigos podem me dar para que eu consiga resolver este problema, pois sem as imagens o programa não roda!

Pensei em fazer uma inputbox solicitando a unidade onde as imagens foram descompactadas, mas achei esta maneira muito XAROPE :)

 

Um grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala gente!

 

Não sei se vou conseguir me fazer explicar, mas lá vai! :)

 

Fiz um jogo de 21 no Access usando programação em Visual Basic e para não carregar muito o programa, não coloquei as imagens das cartas invisíveis dentro do formulário e deixei-as no diretório do jogo: "C:\21\"

O problema é que dentro do formulário eu criei as imagens sem endereço, que só vão sendo direcionadas conforme a necessidade, ou seja, se o programa selecionou o Ás de Ouros, a imagem correspondente será carregada, indo buscar no diretório citado acima.

Minha pergunta: como posso fazer para, ao rodar o programa, o mesmo verificar o caminho onde as imagens foram descompactas? Tem jeito?

Agora se não, que dica os amigos podem me dar para que eu consiga resolver este problema, pois sem as imagens o programa não roda!

Pensei em fazer uma inputbox solicitando a unidade onde as imagens foram descompactadas, mas achei esta maneira muito XAROPE :)

 

Um grande abraço!

Se entendi, você está preocupado para quando o programa for instalado em outra máquina, correto?

Acho que tem duas opções, ou não especificar o caminho da imagem, deixando-a sempre na mesma pasta do executável, ou armazená-las no banco de dados acess que está utilizando. Isso é bem facinho de fazer, se precisar de ajuda diz ai...

 

Boa sorte...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi, você está preocupado para quando o programa for instalado em outra máquina, correto?

Acho que tem duas opções, ou não especificar o caminho da imagem, deixando-a sempre na mesma pasta do executável, ou armazená-las no banco de dados acess que está utilizando. Isso é bem facinho de fazer, se precisar de ajuda diz ai...

 

Boa sorte...

Exato Claudio, fiz uns testes e se instalar em qualquer local diferente, tipo meus documentos ou arquivos de programas, eu teria que deixar prédefinido este caminho dentro do programa, porque a imagem depende do endereço para ser carregada, não tem jeito!

 

'Faço um carregamento da unidade no início:
Private Sub Form_Load()
var_unidade = "C:/21/"
End Sub

'Depois a imagem recebe o valor de uma txt e é carregada:
Private Sub cmd_jog_Click()
var_pcima1 = txt_pc1
img_pc1.Picture = var_unidade & var_pcima1 & ".jpg"
img_pc1.Visible = True
End Sub

Quanto a armazená-las no Access, eu só saberia fazer da seguinte forma: deixava todas as 52 imagens invisíveis dentro do Form e depois do sorteio dava visible na imagem que eu quisesse e a movimentava para o lugar que eu quisesse.

Seria a forma que eu faria, se não soubesse como carregar imagens que estão fora do Form, mas se não tiver outro jeito será o que eu farei.

Agora se amigo souber de qualquer outra forma para armazenar estas imagens, que não carregue o Form principal, eu gostaria de aprender sim!

 

Um grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por isso mesmo que disse que teria que deixar as imagens sempre na mesma pasta do executável, mas se existe a possibilidade de salvá-las em meus documentos ou qq outro lugar realmente não dá certo.

 

 

E não, quando disse para armazenar no acess não foi isso que você disse não, não é preciso te-las no form e colocar visible = false.

 

Dê uma olhada no codigo, ensina a carregar imagens via vb e armazena-las no banco de dados e a descarrega-las e exibi-las no vb, se precisar de ajuda ou tiver alguma dúvida diz ai.

 

Primeiro seu programa precisa de um commomdialog, uma textbox e dois commands. O botão deve abrir o commondialog, e quando escolhido um arquivo no commondialog, o nome do mesmo deve aparecer nessa textbox.

 

Depois o segundo botão vai salvar essa imagem no banco, para isto, basta chamar a função abaixo:

 

Private Function SalvaFotos()
Dim FSO As New FileSystemObject
Dim strLOCAL As String
Dim bytARQUIVO() As Byte
Dim strAusente As String 'essa variável eu declarei para caso não seja adicionada nenhuma imagem, vou colocar uma imagem qualquer
Dim bytAusente() As Byte
dim cn as adodb.connection
dim rs as adodb.recordset

set cn = new adodb.connection
cn.connectionstring = "digite sua conexão"
cn.open

set rs  = new adodb.recordset
rs.open "select imagem from teste", cn, 1, 2

  Screen.MousePointer = vbHourglass

  Erase bytARQUIVO()
  Erase bytAusente()
 
  ReDim bytARQUIVO(0)
  ReDim bytAusente(0)

  strLOCAL = text1.Text
  strAusente = App.Path & "\naoDisponivel.jpg"

	If FSO.FileExists(strLOCAL) Then 'Verifica se o arquivo existe no disco
	  Open strLOCAL For Binary As #1
	  ReDim bytARQUIVO(LOF(1))
	  Get #1, , bytARQUIVO()
	  Close #1
	  rs!imagem = bytARQUIVO()
'a parte acima vai, caso a imagem existe no computador, transformá-la em código hexa e já salvá-la no banco
  Else
	  Open strAusente For Binary As #1
	  ReDim bytAusente(LOF(1))
	  Get #1, , bytAusente()
	  Close #1
	  rs!imagem = bytAusente()
'aqui vai salvar uma imagem qualquer (segue em anexo a imagem que usei), para que evite erro na hora da leitura da imagem
  End If

  Screen.MousePointer = vbDefault

  Erase bytARQUIVO()

rs.update
End Function

 

Depois para ler o arquivo:

 

Você precisa de um image e um botão para aparecer as imagens, ou qualquer outra coisa (no form load, ou no clique de um list, etc)

 

private sub Command1_click()
Dim byARQUIVO() As Byte
Dim strTEMP  As String

	byARQUIVO() = rs("imagem")
	strTEMP = App.Path & "\Arq_TMP.tmp"
	Open strTEMP For Binary As #1
	Put #1, , byARQUIVO()
	Image1.Picture = LoadPicture(strTEMP)
 
  Close #1
end sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.