Ir para conteúdo
Fórum Script Brasil

kuroi

Membros
  • Total de itens

    7.184
  • Registro em

  • Última visita

Tudo que kuroi postou

  1. imagino q só por session, ou você podia fazer por querystring como já esta fazendo, mas passaria os dados codificados, usar alguma tecnica pra detectar quando o usuario estiver modificando o endereco. o q seriam essas "variaveis ocultas"??
  2. entendo q na verdade a nota tem q estar relacionada ao aluno E a disciplina. se for exclusivo da entidade aluno, eu não vao saber em qual materia o aluno tirou aquela nota. se for exclusivo da entidade disciplina, então eu não saber qual foi o aluno q tirou aquela nota nessa materia. alias, tem varios alunos cursando aquela disciplina e um aluno tb cursa varias disciplinas. haveria uma tabela separada para relacionar um com o outro. ela guardaria o codigo da disciplina, o codigo do aluno e a nota. e logico q normalmente ainda tem outros fatores pra considerar, como periodo, semestre, turma, mas como não são comentados no enunciado do exercicio, não precisamos leva-los em conta nesse caso.
  3. 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. teve algum q não deu certo?? 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
  4. 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 Long Private 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).
  5. 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
  6. kuroi

    User Control

    encontrei esse tópico aqui q abri anos atras, e como ele esta sem solucao ate hj, e não tem tantas informacoes sobre isso por ai, e como já sei as respostas, resolvi vir responder aqui pra esclarecer caso alguém quiera saber sobre isso: no evento Resize do UserControl, você deve mudar as dimensoes do TextBox para q tenha o tamanho exato do UserControl. em menu Tools -> Procedure Attributes..., selecione a propriedade q você quer q corresponda a Text, clique no botao Advanced >> e na opcao Procedure ID, selecione "Text". essa parte já é mais complicada, só vale a pena ir atras caso você queira muito mesmo. mas aqui o cara postou um projeto de exemplo de como fazer: http://www.vbforums.com/showthread.php?t=550204
  7. esses arquivos .tmp foi você mesmo q criou?? não tem a possibilidade de eles estarem sendo usados por outro processo?? qual a versao do windows?? se for vista ou 7, talvez você tenha q abrir o seu .exe selecionando a opcao "Executar como administrador". se você tiver rodando a partir do editor do visual studio, então talvez seja ele q você deva executar como administrador.
  8. hum, mas tipo, você ta querendo pegar tudo q ta no flexgrid e por um embaxo do outro no listbox?? tipo, vai pegar o conteudo da primeira linha e por uma coluna embaixo da outra, e logo embaixo, o conteudo da segunda linha, um embaixo do outro e assim por diante?? eu entendi q você queria copiar o flexgrid dentro da listbox, ficando igualzinho, todas as linhas e colunas la tudo bunitinho. se for esse o caso, não da pra fazer com o listbox, como falei antes. use o listview ou o listbox do vba. agora, se for o primeiro caso, é só você adicionar tb um while para as colunas: Do While Ln < Grid1.Rows Do While Cl < Grid.Cols Lst1.AddItem Grid1.TextMatrix(Ln, Cl) Fil.WriteLine Lst1.List(Lst1.ListCount - 1) 'Assim já pega o ultimo Cl = Cl + 1 Loop Ln = Ln + 1 Cl = 1 Loop[/code]
  9. você quer usar varias colunas num listbox?? se for isso: copiei esse texto q já escrevi antes porque seria mais rapido do q procurar os nomes dos componentes pra postar aqui de novo.
  10. hum, é verdade, o valor não ta sendo acumulado. tenta o seguinte, antes de comecar o for, adicione a seguinte linha: resultado = CInt(LstCalcula.List(0)) se for preciso, adicione um if antes pra testar se não há itens no listbox. depois, dentro do for, você pega os valores a partir da variavel resultado. exemplo: Case "+" resultado = resultado + CInt(LstCalcula.List(i + 1))[/code] nem precisa da variavel acumula.
  11. hum, como os sinais aparecem a cada dois items, va fazendo o for como step 2 (assim ele vai somando 2 a cada passagem): For i = 1 To LstCalcula.ListCount - 1 Step 2 'verifica qual é o sinal para efetuar a soma do ANTERIOR com o PRÓXIMO Select Case LstCalcula.List(i) Case "+" resultado = CInt(LstCalcula.List(i - 1)) + CInt(LstCalcula.List(i + 1)) Case "-" resultado = CInt(LstCalcula.List(i - 1)) - CInt(LstCalcula.List(i + 1)) Case "*" resultado = CInt(LstCalcula.List(i - 1)) * CInt(LstCalcula.List(i + 1)) Case "/" resultado = CInt(LstCalcula.List(i - 1)) / CInt(LstCalcula.List(i + 1)) End Select Next[/code]
  12. não da pra fazer exatamente tudo sem ter q programar, mas a parte de inclusao/edicao/consulta, o adodc já faz sozinho sim. agora, ele é bom pra fazer o mais basico possivel, tipo exercicio de escola ou programas bem simples, sem mtos recursos ou funcionalidades. mesmo assim, o sistema não fica perfeito, você tem sempre q programar alguma coisa sim, tipo validacoes e etc. ferramentas de qualquer tipo q já oferecam as coisas prontas nunca tem um resultado tão bom quanto teria se você fizesse (bem-feito) você mesmo. quando você for ficando experiente em programacao você vai perceber q quanto mais partes do sistema for possivel q você mesmo faca, melhor o sistema fica e melhor fica pra você dar manutencao e etc. a não ser aqueles caras q fazem tudo de qualquer jeito, e na maioria das vezes nem sabe o q ta fazendo, o q causa aqueles sistemas cheios de furos e bugs. e, pra terminar, um artigo do macoratti q fala sobre isso: http://www.macoratti.net/vbc_vinc.htm
  13. se você quer q ele faca as contas baseadas nos sinais q você adiciona não adianta somar tudo, ele não vai ler o seu sinal na string. tire o sinal da string, como você tava fazendo no outro tópico (alias vou juntar os dois já q é sobre o mesmo assunto), e interprete a string. se você encontrar *, mande então fazer multiplicacao e assim por diante.
  14. vick, qual a mensagem do erro?? se tiver algum item em branco na listbox vai dar erro mesmo.
  15. vou mover pra sala de redes.
  16. no codigo original, você tava agrupando por cada uma das datas, então, ele ia separar por todos os dias q aparecessem no banco. então, como era pra ser por mes, eu mandei trocar todas as datas pelo dia 1 do proprio mes. exemplo, 02/02/2011 vira 01/02/2011. assim todas as datas do mes estariam no mesmo dia e ele não iria separar. a funcao DateSerial() cria uma data com o ano, o mes e o dia passados por parametros. assim, DateSerial(Year(pagar.datapgto), Month(pagar.datapgto), 1) vai trocar todas as datas pelo dia 1 do mesmo mes.
  17. tenta abrir como ForAppending em vez de ForWriting.
  18. tente isso: With FrmComp sql = "select pagar.subsetor,sum(pagar.valorpago) as vlrpago, DateSerial(Year(pagar.datapgto), Month(pagar.datapgto), 1) As datapagamento, setor.setor, setor.CODIGO from pagar inner join setor on pagar.setor = setor.codigo " sql = sql & "WHERE DATAPGTO >= #" & Format(.Ctxt(0).Text, "mm/dd/yyyy") & "# " sql = sql & "AND DATAPGTO <= #" & Format(.Ctxt(1).Text, "mm/dd/yyyy") & "#" sql = sql & "and SITUAÇAO LIKE '" & "Pag" & "' " End With sql = sql & " group by pagar.subsetor, setor.setor, SETOR.CODIGO, DateSerial(Year(pagar.datapgto), Month(pagar.datapgto), 1) " sql = sql & " ORDER BY DateSerial(Year(pagar.datapgto), Month(pagar.datapgto), 1), pagar.subsetor"[/code]
  19. juliano, de uma pesquisada sobre subreports no crystal reports.
  20. realmente, tb dei uma olhada nos codigos php e js e não vi nd de estranho. explique melhor, rohde, você encontrou algum problema no download??
  21. você tb pode usar o metodo BrowseForFolder() do objeto Folder da biblioteca Shell32 (adicione a referencia Microsoft Shell Controls and Automation): Dim x As New Shell32.Shell Dim f As Shell32.Folder2 Set f = x.BrowseForFolder(Me.hWnd, "[Mensagem]", 16, 17) If Not f Is Nothing Then MsgBox f.Self.Path End If[/code] o q tb pode ser feito usando apis: http://www.codeguru.com/forum/showthread.p...1620#post591620
  22. os codigos ficaram bem legais, mas acho q podia ficar mais simples. aquele codigo do For era o melhor pois faria muito menos processamento (não tem q percorrer todos os controles do formulario a cada clique), mas, em vez de chamar o For dentro do clique, o q faria com q todos os Visibles fossem mudados de uma vez, você deveria executar cada passagem a cada clique do botao. exemplo, se você declarasse uma variavel i no Generals, inicializasse-a com 1 no Form_Load, usasse a linha do primeiro post q pega o Me.Controls() pra mudar o Visible e então depois somasse 1 na variavel, ai você teria o mesmo resultado com menos linhas e menos processamento.
  23. não, esse codigo ai só grava e carrega, não faz nenhum tipo de codificacao. você quer fazer um tipo de criptografia?? eu tenho um codigo bem simples aqui pra isso, q peguei por ai há muito tempo atras: Public Function Criptografia(ByVal strTexto As String) As String Dim intCont, nCar, cCar ChavePar = 256 ChaveImpar = 255 If ChavePar < 1 Or ChavePar > 255 Then ChavePar = 25 If ChaveImpar < 1 Or ChaveImpar > 255 Then ChaveImpar = 33 cCar = "" For intCont = 1 To Len(strTexto) If intCont / 2 = Int(intCont / 2) Then nCar = Asc(Mid(strTexto, intCont, 1)) Xor ChavePar Else nCar = Asc(Mid(strTexto, intCont, 1)) Xor ChaveImpar End If cCar = cCar + Chr(nCar) Next Criptografia = cCar End Function[/code] se você passar um texto, ela retorna o texto criptografado. se você passar o texto criptografado, ela te retorna o original.
  24. mas como é essa codificacao q você esta usando?? qual codigo você usa para faze-la??
×
×
  • Criar Novo...