1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Help me [VB] screenshot

Discussão em 'Programação' iniciada por tzR, 15 de Março de 2006. (Respostas: 5; Visualizações: 841)

  1. tzR

    tzR

    oi sou novo por estas bandas e tenho uma pekena duvida, e vim aki para procurar a vossa ajuda. :)
    entao é assim: Tou a fazer um programa.. e cheguei a uma parte do programa k keria k ele tirasse screenshots de forma INFINITA, ou seja, sempre que carrego na tecla para tirar screenshot ele adicionava ao nome do screenshot um numero.

    exemplo: screenshot1,screenshot2,screenshot3 ....

    um pouco do código (em bold) :

    Private Sub repete()
    Do
    engine.Clear
    scene.RenderAllMeshes
    engine.RenderToScreen
    If inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then repetir = False
    If inp.IsKeyPressed(TV_KEY_Z) = True Then engine.ScreenShot App.Path & "\screenshots\lala.jpg"
    Loop Until repetir = False

    Set engine = Nothing
    Set tfact = Nothing
    Set inp = Nothing
    Set scene = Nothing
    Set exemplo = Nothing
    End
    End Sub



    Obrigado e aguardo pela vossa resposta :)
     
  2. NoMercy

    NoMercy Power Member

    Que tal algo como inicializares uma variável numérica, incrementá-la e concatenares essa variável ao nome do ficheiro do screenshot.
    Algo do género:
    Código:
    Private Sub repete()
    	Do
    		integer i=0;
    		engine.Clear
    		scene.RenderAllMeshes
    		engine.RenderToScreen
    		If inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then
    			repetir = False
    		If inp.IsKeyPressed(TV_KEY_Z) = True Then
    			engine.ScreenShot App.Path & "\screenshots\lala" & CStr(i) & ".jpg"
    		i=i+1
    		Loop Until repetir = False
    
    		Set engine = Nothing
    		Set tfact = Nothing
    		Set inp = Nothing
    		Set scene = Nothing
    		Set exemplo = Nothing
    	End
    End Sub
    
    Já não me lembro muito bem de VB, por isso verifica o tipo de variável a função para converter para string e o operador de concatenação. Penso que esteja tudo correcto, mas vale sempre a pena confirmar isso.
     
  3. tzR

    tzR

    O k tu fizeste nao deu.
    declaraste mal a vareavel i , (dim i as integer) era como deveria ser.
    e faltava ali mais alguns parametros .. do genero EndIf e um loop until mal alinhado.

    Mas muito obrigado pk nao dava com istu --> & CStr(i) & lool

    Agora ja ta kuase a funcar *** ty :)
     
  4. tzR

    tzR

    Agora ficou algo do genero :

    Private Sub repete()
    Dim i As Integer
    Dim doit As Boolean
    Do
    engine.Clear
    scene.RenderAllMeshes
    engine.RenderToScreen
    If inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then repetir = False
    If inp.IsKeyPressed(TV_KEY_Z) = True Then
    repeat
    i = 0
    doit = True
    If File.Exists("\screenshots\screen" & CStr(i) & ".jpg") Then
    engine.ScreenShot App.Path & ("\screenshots\screen" & CStr(i) & ".jpg")
    doit = False
    End If
    i = i + 1
    Loop Until doit = False
    End If
    Loop Until repetir = False

    Set engine = Nothing
    Set tfact = Nothing
    Set inp = Nothing
    Set scene = Nothing
    Set exemplo = Nothing
    End
    End Sub

    -----

    Continua a dar um erro: Sub or function not defined
    :(
     
  5. NoMercy

    NoMercy Power Member

    Pois, tal como disse, já não me lembro da sintaxe correxta do VB, mas a teoria da coisa estava lá.
     
  6. Mig

    Mig Power Member

    Tens dois Loop's para um único Do.
    Um dos If's acaba fora do ciclo Do ... Loop
    Tens um End isolado que é um erro de sintaxe.


    ------------------------------------


     

Partilhar esta Página