-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Sim, porque ao aparecer a MessageBox o form perde o foco (não ficando ativo) e quando a MessageBox desaparece ele ganha o foco novamente (ficando ativo) e o código é executado novamente. Depende. Você só vai ter problemas se o seu código fizer o mesmo que a MessageBox, ou seja, desativar o form e reativá-lo. Caso ele não faça isso, acredito que você não vá ter problemas. Abraços, Graymalkin
-
Sim, tem um jeito sim: Dim cm As CurrencyManager = DataGrid1.BindingContext(DataGrid1.DataSource) cm.EndCurrentEdit() cm.Refresh() Coloque isso no código da opção do menu e você verá que o último dado vai aparecer. Abraços, Graymalkin
-
São só células específicas? Você não pode trancar a DataGrid toda, através da propriedade ReadOnly? Abraços, Graymalkin
-
Graymalkin Ainda não consegui fazer a exclusão e tb não estou conseguindo ordenar o arquivo em ordem alfabética depois de criado. Ex. Cadastro os clientes e salvo em um arquivo em ordem depois quero cadastrar novos clientes e organizá-los tb, não estou conseguindo você pode me dar uma dica? Obrigado. O processo é o mesmo, ou seja, você vai ter que abrir o arquivo e ler todos os clientes (para um vetor, por exemplo), ordená-los e então gravar *tudo* de novo no arquivo. E a mesma coisa para apagar um cliente, ou seja, ler todos os clientes (novamente para um vetor), retirar do vetor o cliente que deve ser removido e então gravar *tudo* novamente para o arquivo. Abraços, Graymalkin
-
Bom, aqui mostra a data corretamente, mas experimente fazer: MessageBox.Show(Now.Date.ToString("dd/MM/yyyy")) Certo? Graymalkin
-
Sim, isso eu percebi. Você fez com todas, menos com aquela que o erro indicava. Beleza, então. Abraços, Graymalkin
-
O que CDate() faz é justamente pegar uma data em uma string e transformá-la em uma data do tipo Date. Ou seja... CDate("20/04/2006") ... é o mesmo que: #4/20/2006# Quem faz a comparação ali é o operador (<, >, =, etc.) e não a função. Abraços, Graymalkin
-
A exclusão de dados em um arquivo texto nada mais é do que você salvar novamente somente os dados que devem permanecer. Se você tem três clientes cadastrados (cliente1, cliente2 e cliente3) e quer apagar o segundo cliente (cliente2) o que você tem que fazer é gravar novamente o arquivo texto apenas com o primeiro e o terceiro clientes (cliente1 e cliente3). E tudo que você precisa para fazer isso você já possui. Abraços, Graymalkin
-
É só utilizar o método Show da classe Form2: Form2.Show; Certo? Graymalkin
-
Cara, funcionou perfeitamente aqui! Mas, eu acho que sei qual é o seu erro. Quando você acaba de digitar na célula note que existe um "lápis" no canto esquerdo da tela. Aquele "lápis" significa que a grade está em modo de edição, portanto o que você acabou de escrever ainda não está realmente na célula. O conteúdo da célula só vai ser modificado se você escolher outra célula, teclar ENTER ou tirar o foco do controle. Ao pressionar o botão este último acontece (a perda do foco), mas ao escolher uma opção de menu não (o controle continua com o foco e portanto continua em modo de edição). É exatamente como no Excel, quando você começa a digitar em uma célula. Sacou? Abraços, Graymalkin
-
Bom, QT eu não conheço, por isso só fiz exemplos em Tkinter e wxPython. Tkinter: from Tkinter import * class Janela(Frame): def __init__(self, pai): Frame.__init__(self, pai) self.pack() self.Text1 = Entry(self) self.Text1.pack(side=TOP) self.Text2 = Entry(self) self.Text2.pack(side=TOP) self.Text3 = Entry(self) self.Text3.pack(side=TOP) self.Text1.bind("<KeyPress>", self.Tecla) self.Text2.bind("<KeyPress>", self.Tecla) self.Text2.bind("<KeyPress>", self.Tecla) def Tecla(self, evento): if evento.keycode==13: name = evento.widget.tk.call('tk_focusNext', evento.widget._w) evento.widget._nametowidget(str(name)).focus_set() pai = Tk() janela = Janela(pai) janela.mainloop() wxPython: import wx class Janela(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'teste') Text1 = wx.TextCtrl(self, -1, '', wx.Point(10, 10), style=wx.TAB_TRAVERSAL) Text2 = wx.TextCtrl(self, -1, '', wx.Point(10, 40)) Text3 = wx.TextCtrl(self, -1, '', wx.Point(10, 70)) Text1.Bind(wx.EVT_CHAR, self.OnChar) Text2.Bind(wx.EVT_CHAR, self.OnChar) Text3.Bind(wx.EVT_CHAR, self.OnChar) def OnChar(self, evento): if evento.GetKeyCode()==13: c = self.FindWindowById(self.NextControlId(evento.GetId())) if c!=None: c.SetFocus() evento.Skip() app = wx.App() janela = Janela() app.SetTopWindow(janela) janela.Show() app.MainLoop() Ok? Graymalkin
-
Fala aê, Nab! Não utilizo ASP.NET, por isso não posso comentar nada a respeito das suas conjecturas. Mas, gostei de você ter voltado a participar do fórum e espero que não suma! Andaram aparecendo algumas perguntas sobre ASP.NET aqui e eu não pude ajudar. Bom, só postei isso aqui pra dar um "alô", já que a gente não se fala desde que acabou a faculdade. Abraços, Graymalkin
-
Na coleção Printers deve ter a impressora desejada, não? Então, basta utilizar os métodos do respectivo objeto. O exemplo abaixo lista as impressoras: Dim p As Printer For Each p In Printers Debug.Print p.DeviceName Next Naquele loop ali, vai ter uma volta em que o "p" terá a impressora desejada. Se você utilizar o método Print deste objeto estará imprimindo na respectiva impressora. Certo? Graymalkin
-
Não, ele não suporta o VBScript, mas suporta o VB.NET que é muuuuiiiitttooo melhor que o antigo VBScript. Abraços, Graymalkin
-
Você não tentou o que eu disse, tentou? Olhe a última linha de código do comentário acima... Graymalkin
-
Você atribuiu algum valor para chrdec? Porque simplesmente declará-lo... string chrdec; ... não define automaticamente um valor para ele. E uma string é uma referência (apesar de ser tratada como um valor em boa parte dos casos), portanto o chrdec é nulo e não tem um referência para uma string. Experimente fazer... string chrdec = ""; ... e veja se dá certo. O VB já atribui o valor "" para uma string automaticamente pra gente, na hora da declaração. Abraços, Graymalkin
-
Por imaginar que ele seria grande foi que pedi para você *isolar* somente este problema e enviar para mim. Não precisar mandar o projeto todo, só um form com uma datagrid que seja preenchida e que apresente o determinado problema com o código que você postou. Abraços, Graymalkin
-
É o +. Porque o operador de comparação em C# é ==. No VB o = é tanto comparação quanto atribuição, mas no C# existem operadores diferentes para ambas as ações. No caso de strings, você também tem o método Equals para comparação. Abraços, Graymalkin
-
Obter os dados do formulário é da mesma maneira, ou seja, através de Request.Form. A diferença no caso é a maneira de se conectar ao banco de dados e obter os registros. Isso você pode encontrar aqui no fórum mesmo, procurando por 'OleDb'. Abraços, Graymalkin
-
Sim, eu fiz o teste aqui e realmente algumas colunas da última linha eram "comidas" pelo fato de haver aquele "<=" (uma vez que o incremento da variável está no início do loop). Você tem como isolar este problema em um projeto e enviar para eu dar uma olhada? Caso positivo, meu e-mail é wap@openlink.com.br. Abraços, Graymalkin
-
Não precisa "pegar" nada... ele já vem com a .NET Framework e está no namespace System.Data. Abraços, Graymalkin
-
Melhor ainda seria *pesquisar* lá, já que esta dúvida já apareceu: http://scriptbrasil.com.br/forum/index.php?showtopic=53280 Abraços, Graymalkin
-
Acredito que seria o evento Activated, não? Graymalkin
-
Qual o toolkit gráfico que você está utilizando? wxPython, GTK, Tkinter, QT, etc? Abraços, Graymalkin
-
Sim, mas vale lembrar que isso só vale para arrays dimensionados na declaração (e não para arrays dinâmicos). Abraços, Graymalkin com arrays não dimensionados na declaracao funciona tb, so q ele zera os indices. tipo ele volta a ficar não dimensionado. Exatamente, ou seja, você é obrigado a fazer um Redim, após o Erase, sendo dispensável a utilização deste, uma vez que o próprio Redim já vai zerar. Abraços, Graymalkin