Danleonhart Postado Março 7, 2011 Denunciar Share Postado Março 7, 2011 Outra duvida (tá foda esses últimos dias)... <_< Como faço para criar em tempo de execução TextBoxes, ListBoxes, Labels, CommandButtons... e se o modo de criar funciona da mesma maneira para todos objetos...:) :) :) :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Março 7, 2011 Autor Denunciar Share Postado Março 7, 2011 Desculpas ! :unsure: Só depois de abrir o tópico foi que encontrei esse material no site do Macoratti:http://www.macoratti.net/faz_ctrl.htm Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 7, 2011 Denunciar Share Postado Março 7, 2011 esse tópico do matheus tb tem umas informacoes sobre isso, caso você tenha saco de ler: http://scriptbrasil.com.br/forum/index.php?showtopic=158374 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Março 8, 2011 Autor Denunciar Share Postado Março 8, 2011 Kuroi, Como faço para executar scripts em tempo de execução ?Tipo se eu digitar "End" em uma TextBox o programa execute o comando "end" fechando assim a aplicação.Tem como fazer isso ? :unsure: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 8, 2011 Denunciar Share Postado Março 8, 2011 (editado) você pode usar a api EbExecuteLine():Private Declare Function EbExecuteLine Lib "VBA6.DLL" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fcheckonly As Long) As LongPrivate Sub Command1_Click() EbExecuteLine StrPtr(Text1.Text), 0&, 0&, Abs(False)End Sub[/code]o problema é q essa dll vba6.dll (ou a vba5.dll, caso você esteja usando vb5) costuma dar muito trabalho pra distribuir.você tb pode usar o metodo .Eval() do objeto ScriptControl da biblioteca Microsoft Script Control pra executar codigos de VBScript ou JavaScript. so q acontece q VBScript não é exatamente o vb6 (seria como se você estivesse executando um arquivo .vbs separado), ou seja, ele não deve ter nenhuma relacao com o seu projeto, então você não deve conseguir alterar valores de seus objetos e muito menos chamar a funcao End(), como você comentou (tb porque acho q funcao End() nem existe em VBScript). Editado Março 8, 2011 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Março 8, 2011 Autor Denunciar Share Postado Março 8, 2011 Beleza Kuroi ! Como assim dá trabalho para distribuir ?! :unsure: Aqui funcionou de primeira com comandos simples...tipo:MsgBox "Script Brasil !" ou: InputBox("Site de programação") Se puder deixar algum link que aprofunde mais sobre as dicas citadas, eu agradeço ! :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 8, 2011 Denunciar Share Postado Março 8, 2011 Como assim dá trabalho para distribuir ?! :unsure:não sei direito, já q nunca tentei distribuir. mas parece q essa dll precisa de outras dlls então quando você esta usando-a, possivelmente você esta usando mais de uma, então fica dificil saber qual é. pesquisando sobre essa funcao, vi algumas pessoas reclamando de problemas pra distribuir, mas talvez seja possivel encontrar alguma resolucao pra esse caso.Aqui funcionou de primeira com comandos simples...tipo:MsgBox "Script Brasil !" ou: InputBox("Site de programação")teve algum q não deu certo??Se puder deixar algum link que aprofunde mais sobre as dicas citadas, eu agradeço ! :rolleyes:bom, não sei, não encontrei no msdn uma documentacao q fale sobre essa funcao EbExecuteLine(). tente fazer uma busca no google por "EbExecuteLine", "EbExecuteLine vb6", por "ScriptControl vb6", sempre aparece alguma coisa de util, nem q seja topicos de outros forums discutindo erros e com codigos de exemplo.posso passar o tópico onde o graymalkin fala sobre esses dois metodos, inclusive comenta sobre o problema da distribuicao: http://scriptbrasil.com.br/forum/index.php?showtopic=76744 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Março 11, 2011 Autor Denunciar Share Postado Março 11, 2011 (editado) Kuroi :Reparei que esta função tem seus limites :unsure:Tentei executar o script:Dim A as String A = "Kuroi" MsgBox A Ele não executa :( Acho que porque tem mais de uma linha de script...então tentei: Dim A as String:A = "Kuroi":MsgBox A Me baseando em: MsgBox "Kuroi":MsgBox "Monitor":MsgBox "ScriptBrasil"esse funcionou...mas o anterior não... :blink: :unsure: :unsure: :unsure: :unsure: :unsure: Editado Março 11, 2011 por Danleonhart Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 11, 2011 Denunciar Share Postado Março 11, 2011 Danleonhart, lembra do q o Graymalkin disse??a variável utilizada dentro do código deve ser públicausando essa funcao você provavelmente não vai conseguir criar variaveis mesmo.e as unicas variaveis q você vai poder acessar são as q estiver definidas como publicas num module.e pra acessar controles do formulario, você tera q passar o nome do form. exemplo: Msgbox Form1.Text1.Textjá o ScriptControl deve conseguir declarar variaveis, mas não deve conseguir acessar os objetos do seu projeto.parece q cada um tem suas limitacoes, você vai ter q ver qual o melhor pra você.quanto a parte de usar varias linhas, parece q precisa dos dois pontos mesmo.mas pra ficar mais facil você pode escrever com enter e, no codigo dentro do visual basic, antes de chamar a funcao você da um Replace() trocando vbCrLf por ":". Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Danleonhart
Outra duvida (tá foda esses últimos dias)... <_<
Como faço para criar em tempo de execução TextBoxes, ListBoxes, Labels, CommandButtons...
e se o modo de criar funciona da mesma maneira para todos objetos...
:) :) :) :)
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.