View Full Version : 2 Dúvidas em V.B 6


Zero_Cool_PT
03-03-2008, 21:57
Boas pessoal.Ora tenho aqui um projecto e tenho umas dúvidas um tanto rudimentares.
A primeira está relacionada com a inserção de 1 objecto Adobe Acrobat Reader. Tenho um documento, o qual quero colocar no trabalho de maneira a que quando clico num botão de comando ele abra o respectivo ficheiro Adobe ou se Possivel (e preferível) que abra até o ficheiro dentro de 1 Form tipo o word a abrir em internet explorer.

Em word consegui fazer e era mais ou menos isto (este aqui inclui uma pergunta de message box mas vai dar ao mesmo):

Dim resposta As Variant
Dim wordApp As Word.Application
Dim strCaminho As String

resposta = MsgBox("Quer abrir o ficheiro de ajuda?", vbYesNo, "Necessidade de acção")
If resposta = vbYes Then

'caminho do documento de help'
strCaminho = App.Path & "\Manual de instruções.docx"

Dim myDoc As Word.Document
Set wordApp = New Word.Application
Set myDoc = wordApp.Documents.Open(strCaminho)
wordApp.Visible = True

'mensagem de despedida'
MsgBox "Esperamos que a consulta ao manual tenha sido útil!", vbInformation, "Informação"

ElseIf resposta = vbNo Then FrmMenu.ShowA 2a questão é na criação de um Splash Screen. Eu queria criar um splash screen que "implodice" tipo um resize do tamanho original que vai ficando gradualmente mais pequeno até desaparecer.
Acho que se deve fazer com Timer ou com a instrução While mas não faço mesmo a minima :confused: Obrigado desde já!

Zero_Cool_PT
04-03-2008, 16:01
Então? Ninguém? Vala people é um pouco urgente :(

Armadillo
04-03-2008, 16:10
2a questao:



Public sub Timer1_timer(.....)

while me.width > 2500
me.width=me.width-10
me.heigth=me.heigth-10
wend

end sub

Ш¡zard·σf·Шαr
04-03-2008, 16:26
Para abrir um ficheiro .pdf basta executar o ficheiro, que irá abrir com o programa pré-definido para PDF's:
Shell("C:\pasta\ficheiro.pdf")Embutir o ficheiro dentro do programa é mais difícil, e, no fundo, vai dar ao mesmo porque tens que depois extraí-lo para uma pasta qualquer para o poderes abrir.

Quanto a abrir o programa dentro do form, informa-te sobre a API "SetParent" (biblioteca: user32.dll), que serve para pôr uma janela "dentro" de outra, e funciona com qualquer janela que esteja aberta no windows.

Quanto ao splash screen que implode, vais precisar de:
- um form (que é o splash screen)
- um timer que, a cada x milissegundos, faz isto:
Sub Timer1_Timer()
If Me.Height <= 10 Then
Timer1.Enabled = False
FormPrincipal.Show()
Me.Close()
Else
Me.Width = Me.Width - 10
Me.Height = Me.Height - 10
Me.Top = Me.Top + 5
Me.Left = Me.Left + 5
End If
End SubNão tenho a certeza se no VB6 existe o "Me". Se não existir, substitui pelo nome do form do splash.

Zero_Cool_PT
04-03-2008, 16:27
2a questao:



Public sub Timer1_timer(.....)

while me.width > 2500
me.width=me.width-10
me.heigth=me.heigth-10
wend

end sub



E ponho isso dentro da form load?

Armadillo
04-03-2008, 16:37
E ponho isso dentro da form load?
le bem o codigo:

Public sub Timer1_timer(.....)isso ta no evento do timer

ponto 1


Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Form_Load()


Dim FileName As String
FileName = "d:\ficheiro.pdf"


ShellExecute 0&, "open", FileName, "", "", vbNormalFocus
End Sub

Zero_Cool_PT
04-03-2008, 16:51
le bem o codigo:

Public sub Timer1_timer(.....)isso ta no evento do timer


[/code]


Ok mas tipo eu pus isso no timer1_timer e ele nao me diminuiu o tamanho, ficou exactamente na mesma =/

Armadillo
04-03-2008, 16:57
activa o timer: nas propriedades do timer
enabled:true
interval:[valor>0]

Zero_Cool_PT
04-03-2008, 17:45
activa o timer: nas propriedades do timer
enabled:true
interval:[valor>0]

Tá perfeito =D Obrigadão pela ajuda :x2::009:

Zero_Cool_PT
05-03-2008, 09:43
le bem o codigo:

Public sub Timer1_timer(.....)isso ta no evento do timer

ponto 1


Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Form_Load()


Dim FileName As String
FileName = "d:\ficheiro.pdf"


ShellExecute 0&, "open", FileName, "", "", vbNormalFocus
End Sub


O pdf não abriu. E já agora, ele nao pode ter uma localização especifica, tem de ser lido a partir da pasta onde ficar, tipo isto:

\Ficha de Trabalho nº1.pdf

Armadillo
05-03-2008, 09:47
tas a usar o vista? Se sim, pode ser isso. Mas dá-te algum erro?

para ters uma localizaçao dinamica basta fazeres qualquer coisa assim

FileName = me.text1.text

Zero_Cool_PT
05-03-2008, 10:14
tas a usar o vista? Se sim, pode ser isso. Mas dá-te algum erro?

para ters uma localizaçao dinamica basta fazeres qualquer coisa assim

FileName = me.text1.text


n0p to no XP. nao da erro, simplesmente carrego no botao e nada acontece =O

Armadillo
05-03-2008, 10:18
tens o ficheiro d:\ficheiro.pdf? é que se usares este codigo, ele so vai abrir este ficheiro.

Zero_Cool_PT
05-03-2008, 10:45
tens o ficheiro d:\ficheiro.pdf? é que se usares este codigo, ele so vai abrir este ficheiro.

Não, tenho \ficheiro.pdf porque aquilo depois vai ser instalado

Armadillo
05-03-2008, 10:47
nesse caso deves usar FileName= app.path & "\ficheiro.pdf"
porque "\" redireciona-te pra raiz do disco :p

Zero_Cool_PT
05-03-2008, 11:11
nesse caso deves usar FileName= app.path & "\ficheiro.pdf"porque "\" redireciona-te pra raiz do disco :p

é capaz de ser isso. entao como fica o codigo no final?é que nao percebi bem aquela parte em cima =/

Armadillo
05-03-2008, 12:03
FileName= app.path & "\ficheiro.pdf"

atraves de "app" consegues obter varias propriedades da tua aplicação, sendo uma delas o caminho onde ela esta a correr ("path").

Zero_Cool_PT
05-03-2008, 14:47
FileName= app.path & "\ficheiro.pdf"atraves de "app" consegues obter varias propriedades da tua aplicação, sendo uma delas o caminho onde ela esta a correr ("path").

ele da me erro no Filename, diz me que a variavel nao ta declarada =O

Armadillo
05-03-2008, 14:49
entao declara-a

Dim fileName as string

Zero_Cool_PT
05-03-2008, 15:27
entao declara-a

Dim fileName as string



tenho assim:

Private Sub cmd_enunciado_Click()

Dim FileName As String
FileName = App.Path & "\Ficha de Trabalho nº1.pdf"


End Sub

e quando carrego no botao simplesmente não abre =O

Armadillo
05-03-2008, 15:32
pois nao. falta-te a linha para abrir o ficheiro

Zero_Cool_PT
05-03-2008, 15:50
pois nao. falta-te a linha para abrir o ficheiro

Tens toda a razão. É que tinha apagado as cenas da shell e o private da cena :D

Já bomba nas horas :009:

Obrigadão pela ajuda, foi preciosa^^ :004:

Armadillo
05-03-2008, 15:51
vá, atençao ao codificar e lembra-te: o teu melhor amigo é a tecla F1!

cumpz