Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. De fato, o seu sistema não congelaria neste caso. Para tanto, acho que você tem duas opções simples: usar um Timer ou criar um ActiveX EXE (tem esse item quando você manda criar um novo projeto no VB). O Timer é de fácil utilização, então acho melhor eu explicar o funcionamento do segundo (o ActiveX EXE). Quando você cria um projeto deste tipo você está criando uma biblioteca (sim, uma DLL) sendo que esta funciona de forma separada do seu programa. Daí, se você colocar o envio do e-mail para ser executado neste ActiveX EXE é ele quem vai parar e não o seu programa propriamente (que foi quem chamou ele). Ilustrando o caso, seria algo como: Seu Projeto -> Seu ActiveX EXE -> Py.Sendmail. No seu ActiveX EXE você criaria um método (por exemplo, Enviar()) com os parâmetros que você quisesse e seria este método que chamaria realmente o Py.Sendmail para o envio da mensagem. A diferença é que quando você chamasse este método (Enviar()) o seu programa *não* iria ficar parado esperando pela conclusão do mesmo (que é o que acontece quando você chama o método Send() do Py.Sendmail). O seu ActiveX EXE é que ficaria esperando (já que ele é que vai chamar o método Send()), mas isso não afetará o funcionamento do seu programa. Deu pra sacar a idéia? ;) Não testei, mas teoricamente isso deve funcionar. Abraços, Graymalkin
  2. Graymalkin

    If não Funcionaaa !

    Provavelmente você está esquecendo da identação. E, note também que Python é sensível a maiúsculas e minúsculas, portanto "Print" não é o mesmo que "print". Abraços, Graymalkin
  3. Graymalkin

    Sem Dlls - Activex

    As classes AxInterop são classes criadas para fazer a ponte entre o seu projeto e os respectivos componentes ActiveX. Isso porque ActiveX não é mais, digamos, um padrão "nativo". Quanto a embutir as DLLs no executável... você não acha que isso é inútil em comparação com ter que instalar a .NET Framework (que tem aproximadamente 23MB)? Na minha opinião, alguns arquivinhos a mais não vão fazer diferença. Abraços, Graymalkin
  4. Não sei se tem como fazer na mesma linha, mas você pode substituir... self.texto1 = Label(self.frame,text="Nome") self.texto1.pack() self.input = Entry(self.frame) self.input.pack() self.botao = Button(self.frame,text="Ok",command=self.printre) self.botao.pack() ... por: objetos = [['texto1', Label, {'text': 'Nome'}], ['input', Entry, {}], ['botao', Button, {'text': 'Ok', 'command': self.printre}]] for nome, classe, parametros in objetos: obj = classe(self.frame, parametros) setattr(self, nome, obj) obj.pack() Ficou quase a mesma quantidade de linhas, mas se você adicionar mais uns dois controles já vai ver a diferença. Sendo que também é mais "complicado" de entender se você não tiver um certo conhecimento de Python. Abraços, Graymalkin
  5. Aí já foge dos meus conhecimentos (básicos) de Tkinter. No caso, você deveria procurar algo como um evento MouseClick do form ou algo assim. Talvez você tenha sucesso buscando no Google. Abraços, Graymalkin
  6. Isso é um celular? Acho que você postou no local errado (VB), amigo. Vou mover para Outros Assuntos. Graymalkin
  7. Para o parâmetro command você precisa passar uma função que será executada quando o botão for clicado: from Tkinter import * def BotaoClick(): canvas.create_oval(10,10,100,100) root = Tk() botao1 = Button(root, command=BotaoClick, text="circulo") botao1.pack() canvas = Canvas(root, width=200, height=200) canvas.pack() root.mainloop() Sendo que fica mais elegante (e inteligível) se você usar uma classe: from Tkinter import * class Janela(Frame): def __init__(self, app): self.botao1 = Button(app, command=self.ClickButton, text="circulo") self.botao1.pack() self.canvas = Canvas(app, width=200, height=200) self.canvas.pack() def ClickButton(self): self.canvas.create_oval(10, 10, 200, 200) aplicacao = Tk() j = Janela(aplicacao) aplicacao.mainloop()
  8. Como Jack, vamos por partes. Qual realmente você quer usar? O VB6 ou o VB2005? É importante decidir isso antes de qualquer coisa. Se você optar pelo VB2005 eu posso mover a sua dúvida para o fórum de .NET. Abraços, Graymalkin
  9. Bom, se ambos os forms possuem as mesmas caixas de textos com *exatamente* os mesmos nomes, sim, você pode usar apenas um código. No caso, declare f como Object e as propriedades serão resolvidas em tempo de execução. Seria algo assim: Dim f As Object f = Me.ActiveMdiChild Dim g As Graphics = e.Graphics Dim mensagem As String Dim mensagem2 As String mensagem = f.operacao.Text mensagem2 = f.cfop.Text Veja aí se dá certo. Abraços, Graymalkin
  10. Qual é realmente a sua janela filha? Ela é "meuform" ou "meuform2"? Se for a segunda, realmente você tem que colocar este segundo tipo. Abraços, Graymalkin
  11. Quando você diz que ele "pára", o que realmente acontece? Dá algum erro? Abraços, Graymalkin
  12. Em Portugol: x = 0 y = 0 ESCREVA("Digite o primeiro valor:") LEIA(x) ESCREVA("Digite o segundo valor:") LEIA(y) SE x>y ENTÃO diferença = x - y SENÃO SE y>x ENTÃO diferença = y - x ELSE { são iguais então o resultado vai dar zero } diferença = 0 FIM-SE FIM-SE ESCREVA("Resultado: ", diferença) Certo? ;) Graymalkin
  13. Não, não tem sentido dizer isso. "Escalar" significa, conforme diz a Física: qualquer grandeza que pode ser caracterizada exclusivamente por um valor. Valores inteiros, lógicos, caracteres, etc. são todos escalares porque você só atribui um (e apenas um) valor a cada variável do respectivo tipo. Já os tipos estruturados são realmente formados por tipos escalares, mas não representam exclusivamente um valor. Registros sim, porque são estruturas. Vetores não, porque não passam de dados indexados (sejam estes dados escalares ou estruturados). Abraços, Graymalkin
  14. Existe o WinConnection também. Abraços, Graymalkin
  15. Tipos simples ou escalares são os tipos mais comuns da linguagem, como inteiro (int), caracter (char), valor com ponto flutuante (float), valor lógico (bool), etc. Tipos estruturados já são representados por estruturas (struct) e classes (class). A diferença é mais simples com um exemplo: em um inteiro você guarda apenas um valor, por exemplo; em um objeto da estrutura Pessoa você guarda várias informações a respeito do objeto (nome, idade, etc.). Abraços, Graymalkin
  16. Então experimente fazer assim: Dim f As NOMEDOSEUFORM f = Me.ActiveMdiChild Assim tem que dar certo. Outro jeito seria declarar f como Object. Abraços, Graymalkin
  17. Veja se é isso que você quer: from Tkinter import * tela = Canvas(width = 200, height = 200) imagem = PhotoImage(file = 'c:/ydinamo.gif') tela.create_image(50, 50, image = imagem) tela.pack() mainloop() Abraços, Graymalkin
  18. Se este botão que converte está no Word grave uma nova macro e clique nele. Depois é só ir no editor do VBA (ALT+F11) e ver o código gerado para esta ação. Abraços, Graymalkin
  19. É... tá difícil de entender... o que você quer dizer por "entrando"? Graymalkin
  20. Tente usar no prompt. O getch() aqui funcionou. Abraços, Graymalkin
  21. Graymalkin

    Erro Estranho

    Mas, dá algum erro? Graymalkin
  22. Tem algum Option Strict On lá no topo do código? Se tiver, retire ele. Abraços, Graymalkin
  23. Qualquer número primo maior que 2 não é divisível por nenhum dos primos anteriores até a sua raíz quadrada. Ou seja: 2 = primeiro primo 3 não é divisível por 2 5 não é divisível por 2 7 não é divisível por 2 11 não é divisível por 2 e nem por 3 13 não é divisível por 2 e nem por 3 17 não é divisível por 2 e nem por 3 19 não é divisível por 2 e nem por 3 23 não é divisível por 2 e nem por 3 29 não é divisível por 2, nem por 3 e nem por 5 31 não é divisível por 2, nem por 3 e nem por 5 ... E assim por diante. Você poderia olhar a divisão por todos os primos anteriores, mas não há necessidade disto bastando ir até a raíz quadrada do número (a raíz quadrada de 19, por exemplo, é ~4,35 portanto só preciso testar a divisão por 2 e 3, que são os primos menores que 4,35). Bom, a idéia está aí, agora é só implementar. Abraços, Graymalkin
  24. O seu aparelho é Motorola ou Nokia? Eu já vi esse tipo de erro nestes aparelhos. O meu aqui (um Sony Ericsson) baixou o arquivo corretamente. De qualquer maneira, isso confirma que o problema não é no seu site e sim no aparelho que está recebendo. Abraços, Graymalkin
×
×
  • Criar Novo...