-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Olhe o que você colocou... Private Sub_Save() ... sendo que o correto seria: Private Sub Save() Agora, se é um vetor de controles, pra quê uma linha para controle??? Não seria mais simples, fácil e elegante, usar um laço For? Abraços, Graymalkin
-
Recordsets do ADO não tem um método Edit equivalente. Basta apenas atribuir os valores novos aos campos e chamar o método Update para finalizar. Abraços, Graymalkin
-
Dá uma pesquisada (pode ser no help do Delphi mesmo) sobre: o tipo TextFile, e as rotinas AssignFile, Reset, ReWrite e CloseFile (além de Read, Readln, Write, Writeln, que você já deve conhecer, mas que também são usadas com arquivos texto). Abraços, Graymalkin
-
Você pode usar a função Replace(), exemplo: msgbox replace("230,35", ",", "") Supondo, é claro, que você está usando VBScript e que o número é convertido para string. Abraços, Graymalkin
-
Você pode fazer uma matriz colocando um elemento do vetor como um vetor também (ou seja, vetor de vetores == matriz). Exemplo: dim vetor vetor = array(array("Teste1", 1), array("Teste2", 2)) for i=lbound(vetor, 1) to ubound(vetor, 1) for j=lbound(vetor, 1) to ubound(vetor, 1) msgbox vetor(i)(j) next next Abraços, Graymalkin
-
Estranho? Bom, eu acho que existem duas fortes razões para isso. A primeira é que, sendo Python uma linguagem multiplataforma, a geração de um determinado código executável impossibilitaria justamente a portabilidade. O arquivo .py que você escreve no Windows pode ser levado para qualquer outra plataforma (Linux, por exemplo) e ser executado lá. A outra razão é que se elimina o processo "desenvolve-compila-executa" passando a ser apenas "desenvolve-executa". Você, como um desenvolvedor VB, já deve ter reparado que o VB leva mais tempo para compilar (quando você escolhe a opção "Make arquivo.exe...", no menu Arquivo) do que quando você manda executar pela opção Run (ou pelo botão play). Não tenho informações concretas a respeito, mas creio que quando se usa o Run, o VB na verdade só interpreta o código e não faz uma compilação completa (semelhante ao que Python faz ao gerar o arquivo .pyc e executá-lo, quando se manda abrir um arquivo .py no interpretador). Todavia, vale lembrar que não é impossível gerar um executável stand-alone de um script Python. Para isso existe o módulo py2exe e o programa cx_Freeze (este último eu usei para compilar o script Python que é a parte central de um de meus softwares: WallChanger). Abraços, Graymalkin
-
Bom, não acho que ela realmente "lenta" (até porque isso é discutível...), principalmente quando se trata de computadores mais modernos (como um Pentium IV ou um Celeron) onde acho que ela roda bem. Existe sim um certo tempo que é gasto na compilação (assim que o arquivo .py é aberto pelo interpretador), porém isso pode ser modificado (compilando os arquivos .py para .pyc, ou seja, para o formato compilado), mas não acho que seja necessário. Ainda não fiz uma aplicação grande com Python (bom, já fiz uma que poderia ser considerada assim, mas que não se enquadra na categoria de aplicação comercial - aliás, teve um tópico que eu falei dela... se achar eu coloco o link aqui), utilizando ela mais em programas auxiliares (para envio de emails, por exemplo) ou para fazer rotinas que não seriam tão simples de ser feitas no VB ou em Clipper e que chamo a partir dos mesmos (tratamento de texto, arquivos de configuração, etc). Abraços, Graymalkin
-
Acho que o que falta aí é a identação, não? Abraços, Graymalkin
-
O problema é a versão do motor JET. Você deve usar a 4.0 e não a 3.51. Portanto, troque a linha... cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\teste\biblio.mdb" ... por: cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste\biblio.mdb" Abraços, Graymalkin
-
Baixe esse exemplo aqui: http://www.graymalkin.globalhosts.com.br/stuff/bd.zip Abraços, Graymalkin
-
Se entendi bem, você quer a saída de um programa que será executado, certo? Se for esse o caso, você pode usar o recurso de direcionar a saída de um programa para um arquivo texto (através do > ou >>). Exemplo: #include <stdlib> #include <stdio> #include <fstream> using namespace std; void main() { ifstream f; char s[40]; system("ver > arquivo.txt"); f.open("arquivo.txt"); f.read(s, 39); f.close(); cout << s; } Abraços, Graymalkin
-
Em relação a primeira pergunta: showmessage(DateToStr(date())); showessage(TimeToStr(time())); E, para a segunda pergunta, você pode fazer isso assim... memo1.Text := 'linha1' + #13 + #10 + 'linha2'; ... ou assim: memo1.Lines.Add('linha1'); memo1.Lines.Add('linha2'); Abraços, Graymalkin
-
Qual o tipo desse campo? Se for do tipo texto, você deve usar aspas simples para delimitar o texto que está na SQL. Abraços, Graymalkin
-
Você não especificou o que está usando para obter os dados. Todavia, com ADO seria algo assim: rs := cn.Execute('SELECT * FROM Funcionarios WHERE funcNome LIKE ''' + cmbFuncionario.text + ''' ORDER BY funcNome'); Sendo "cn" um TADOConnection e "rs" um _Recordset. Em relação a segunda pergunta você pode colocar várias condições em um único WHERE, ligando-as pelos conectivos lógicos AND ou OR. No seu caso, se você quer que as três condições sejam atendidas para que o registro seja retornado, deverá usar o conectivo AND. Abraços, Graymalkin
-
Use a função FormatFloat(), exemplo: edit1.text := formatfloat('.##', 12.4545453); Abraços, Graymalkin
-
Use a função InStr() que retorna a posição de uma string dentro de outra. Exemplo: if instr(1, text1.text, "'")>0 then msgbox "Tem um apóstrofo ali!" else msgbox "Não, não tem um apóstrofo ali!" endif Abraços, Graymalkin
-
Depende de como você está imprimindo, mas quase com certeza deve estar faltando um Printer.EndDoc ou um Close #n. Abraços, Graymalkin
-
No Delphi é assim: ListBox1.Items.Add('item'); O objeto Items tem todos os métodos referentes aos itens contidos na ListBox, diferentemente do VB onde existem métodos e propriedades para isso na própria listbox. Abraços, Graymalkin
-
Use o método Close() de um form para fechá-lo, ou simplemente altere a sua propriedade Visible para False, a fim de não descarregá-lo e sim não exibi-lo. Abraços, Graymalkin PS: o correto é "fechar" e não "fexar"...
-
Valores de ponto flutuante são armazenados assim mesmo. O que você deve fazer é formatar a saída (escrita) deles na tela. Exemplo: program t; var valor : real; begin valor := 20; writeln(valor); {SEM formatação } writeln(valor:0:2); {COM formatação } readln; end. Abraços, Graymalkin
-
Se não me falha a memória, esse código que tem que ficar no começo e no final é representado pelo caracter *. Mas posso estar errado (me lembro que é um caracter tipo !, @, #, $, %, etc., só não me lembro qual exatamente). Abraços, Graymalkin
-
Experimente se inscrever na lista Python Brasil e mandar essa pergunta para lá (pois já vi um pessoal lá mexendo com grafos). Abraços, Graymalkin
-
Não sei se é o que você procura, mas dê uma olhada na classe ImageAnimator (o link do help é: ms-help://MS.VSCC/MS.MSDNVS/cpref/html/frlrfSystemDrawingImageAnimatorClassAnimateTopic.htm). Abraços, Graymalkin
-
Sinceramente acho que vale a pena ainda investir no 6. Até porque se você conhecer o 6 você se vira relativamente bem no .NET. Abraços, Graymalkin
-
Sim, mas você pode fazer isso com apenas umas poucas linhas (e muito mais rápido): frmanimesdb.Data1.Recordset.FindFirst "nome='" & txtnome.Text & "'" If not frmanimesdb.Data1.Recordset.NoMatch Then 'Se achou Data1.Recordset.Update frmanimesdb.Data1.Refresh Else 'Se não achou MsgBox "Título já existente. Por favor escolha outro nome.", vbInformation, "Erro" End If E ali na condição ("nome='" & txtnome.Text & "'") você pode colocar o seguinte: "nome LIKE '" & txtnome.Text & "%'" 'Ou um * no lugar de % Para procurar só pelo começo do nome (ou seja, não precisar digitar o nome completo como está na tabela). Abraços, Graymalkin