-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Beleza! É só que com aquele código ali em cima você vai percorrer todas as caixas de uma vez só (sejam elas 10 ou 100), sem precisar ter que escrever uma linha para cada. Mas, veja o que é mais prático pra ti e use. Abraços, Graymalkin
-
Se for um arquivo do Excel no estilo tabela (a primeira linha com os "campos" e as demais com os "registros"), você pode utilizar ADO.NET para isso (veja aqui: http://www.dotnetjohn.com/articles.aspx?articleid=54). Já se a sua necessidade for alterar arquivos arbitrários, então você vai ter que recorrer a automação do Excel. Isso vai exigir que o Excel esteja instalado no servidor, porém também vai te dar total liberdade para controlá-lo e realizar as alterações. Entretanto, fiz um teste aqui e não consegui instanciar um objeto Excel.Application. Aparece um erro dizendo que não há permissão para isso (fiz todas as configurações que encontrei, porém não teve jeito). Se quiser tentar aí, faça um teste com: Dim x As Object = Server.CreateObject("Excel.Application") Se isso funcionar, é só você utilizar os métodos que esse objeto disponibiliza (fazendo referência ao Microsoft Excel você vai poder saber quais são os métodos). Abraços, Graymalkin
-
A macrosubstituição permite que você coloque um pedaço qualquer de código em uma string e execute-o. Por exemplo, em um programa assim (Clipper): expressao = space(20) @01,01 say "Digite uma expressao qualquer: " get expressao read ? &expressao inkey(0) Você poderia digitar algo como "2+5+7+3+1" e isso seria desenvolvido na hora. Outro exemplo é se você precisar obter o valor de um campo (do banco de dados), passando o nome do campo como uma string: campo := "total" ? alias->&campo Ou ainda, se você quiser executar uma função também partindo de seu nome e parâmetros como uma string: codigo := "soma(2, 3)" ? &codigo inkey(0) function soma(n1, n2) return n1+n2 Sacou? Abraços, Graymalkin
-
Na verdade, "Funcao" ali não é uma "função" no sentido estrito da palavra (ou seja, não é algo para ser executado). O que ele queria fazer é transformar algo como... objeto.Campo := 'um teste' ... em: defina(objeto, 'Campo', 'um teste'); Ou seja, passar o atributo como uma string. FieldAddress retorna um ponteiro para um campo (atributo) do objeto, porém não sei para qual tipo (classe) eu deveria colocá-lo. Por exemplo: var pt : ^TForm; ps : ^String; pi : ^Integer; i : integer; s : string; begin pt := @self; pt^.Caption := 'teste'; i := 2; s := 'um teste'; pi := @i; ps := @s; showmessage(inttostr(pi^)); showmessage(ps^); end; Todos aí são válidos porque eu coloquei o endereço de um inteiro em um ponteiro de um inteiro, o endereço de uma string em um ponteiro de string, e um endereço de um objeto TForm em um ponteiro de TForm. Mas, aí é que entra o problema, eu vou colocar o retorno do FieldAddress em um "ponteiro de quê"? Se alguém tiver alguma luz a respeito, por favor, isso seria muito bem vindo. Abraços, Graymalkin
-
Sim, tem uma aspa simples ali na linha... 'SQL = "INSERT INTO tab_material(nomematerial,valordevenda,codgrupo) VALUES ('" & nome & "','" & valor & "','" & codgrupo & "')" ... então, efetivamente, esta linha não está sendo executada (uma ' é utilizada para definir comentários). Abraços, Graymalkin
-
Hehehe... sim, é bem estranha de se programar. Ela se baseia em uma outra famosa linguagem, chamada Brainf*ck (http://bluesorcerer.net/esoteric/bf.html). Esta, por sua vez, é completamente baseada na idéia da Máquina de Turing (mais informações: http://pt.wikipedia.org/wiki/M%C3%A1quina_de_Turing). Dê uma olhada no clássico Hello, World em Brainf*ck: >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-] <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. Doideira, né? Abraços, Graymalkin
-
Tem realmente alguma coisa nessa variável SQL? Pergunto isso porque é exatamente este o erro que o ADO retorna se você mandar executar uma string vazia (ou uma variável que não tenha sido inicializada anteriormente). Abraços, Graymalkin
-
Mais uma para a lista: Ook# .NET (compilador para a linguagem Ook!, uma linguagem especialmente desenhada para orangotangos - ): http://bluesorcerer.net/esoteric/ook.html Abraços, Graymalkin
-
O que tem na linha 37 desse arquivo? Abraços, Graymalkin
-
Um arco gerado pelo DrawArc é uma parte de uma elipse, e uma elipse não tem raio (no caso, ela é formada a partir de um retângulo). Mas, acredito que você possa utilizar os parâmetros Width e Height para determinar o "raio". Veja este outro exemplo: Dim superfície As System.Drawing.Graphics = Me.CreateGraphics() superfície.DrawArc(New Pen(Color.Black), 40, 40, 80, 80, 100, 100) superfície.DrawArc(New Pen(Color.Black), 40, 40, 80, 80, 0, 100) superfície.DrawArc(New Pen(Color.Black), 40, 40, 80, 80, 200, 200) superfície.DrawArc(New Pen(Color.Black), 30, 30, 100, 100, 100, 100) superfície.DrawArc(New Pen(Color.Black), 30, 30, 100, 100, 0, 100) superfície.DrawArc(New Pen(Color.Black), 30, 30, 100, 100, 200, 200) superfície.DrawArc(New Pen(Color.Black), 20, 20, 120, 120, 100, 100) superfície.DrawArc(New Pen(Color.Black), 20, 20, 120, 120, 0, 100) superfície.DrawArc(New Pen(Color.Black), 20, 20, 120, 120, 200, 200) Certo? Abraços, Graymalkin
-
Experimente postar isso na sala de Caché que existe no fórum do site http://desenvolvedores.net/. Além disso, tente entrar em contato com um dos membros lá (o Marcelo) que utiliza esse BD. Abraços, Graymalkin
-
Sim, seria essa a idéia. A diferença é que você vai ter um nome comum (Teste) e o que vai variar são os índices. Vamos supor que você tivesse que ler o nome de 150 alunos. Seria muito mais fácil fazer: var Alunos : array [1..150] of String; i : Integer; begin for i:=1 to 150 do Alunos[i] := inputbox('Digite o nome do ' + IntToStr(i) + 'º aluno:', '', ''); end; Você vai utilizar vetores (ou matrizes) quando precisar armazenar dados comuns e em grande quantidade. As utilizações são bem diversas: ordenação de dados (ordenar os dados em um vetor é super-rápido e existem técnicas para isso); indexação (ler um arquivo texto e jogar cada linha em uma posição do vetor é uma "mão-na-roda" para manipulação de dados); ainda no caso da indexação e da ordenação, procurar um item em um vetor também é bem veloz e existem técnicas para isso. Esses são apenas alguns exemplos. Certo? Abraços, Graymalkin
-
Isso está parecendo exercícios das aulas de BD I... : DDL - Data Definition Language - Linguagem de definição de dados: basicamente, são os comandos utilizados para a criação e manipulação das estruturas das tabelas (CREATE, DROP e ALTER). DML - Data Manipulation Language - Linguagem de manipulação de dados: basicamente, são os comandos utilizados para a manipulação dos dados contidos nas tabelas (INSERT, UPDATE e DELETE). DQL - Data Query Language - Linguagem de consulta de dados: comandos utilizados para a consulta (o único é SELECT). Em algumas bibliografias você vai encontrar o SELECT como parte da DML (e consequentemente não vai se falar de DQL). Certo? Se eu esqueci algo aí, por favor acrescentem. Abraços, Graymalkin
-
Clipper é uma linguagem dinâmicamente compilada. Delphi já é estaticamente compilada. Ou seja, Clipper tem a habilidade de compilar e executar um código em tempo de execução. Aliás, recentemente apareceu um tópico no qual essa solução seria a mais viável: http://scriptbrasil.com.br/forum/index.php?showtopic=59018 Ah, e a despeito da pobre orientação a objetos, Clipper rulez! Abraços, Graymalkin
-
O PHP é uma linguagem e o Zope é um servidor de aplicação para criação de sites de conteúdo. O mais próximo do equivalente ao Zope no PHP seria o phpNuke, por exemplo. O equivalente ao PHP no Zope é a linguagem Python, como você já deve saber. Ou seja, PHP e Zope são coisas que não são realmente comparáveis. Eu, entretanto, estou apostando minhas fichinhas no PSP do mod_python (vou refazer meu site todo assim). Abraços, Graymalkin
-
Se você está utilizando o Visual Studio .NET, note que aparece uma descrição naquele balãozinho amarelo indicando o que é cada um dos parâmetros. Mas, veja esse exemplo: Dim superfície As System.Drawing.Graphics = Me.CreateGraphics() superfície.DrawArc(New Pen(Color.Black), 0, 0, 100, 100, 100, 100) superfície.DrawArc(New Pen(Color.Black), 0, 0, 100, 100, 0, 100) superfície.DrawArc(New Pen(Color.Black), 0, 0, 100, 100, 200, 200) Certo? Abraços, Graymalkin
-
Na seção Ícones (Icons) do IsTool crie uma atalho com o seguinte "filename": {uninstallexe} E para o arquivo de ajuda é só você se basear no atalho que já existe para o seu executável. Abraços, Graymalkin
-
Sim, é só você ler o arquivo todo, incluir a linha e depois gravar tudo de novo. Abraços, Graymalkin
-
Depende do tipo da DLL. Atualmente existem três tipos: DLLs comuns, principalmente criadas em C/C++ (e Delphi também); DLLs COM (também chamadas de ActiveX), principalmente criadas em VB (e Delphi também); e DLLs .NET (criadas a partir de qualquer linguagem .NET - VB.NET, C#, C++.NET, e a nova versão do Delphi também... ). Acredito que a sua DLL aí, provavelmente, seja a primeira opção, ou seja, uma DLL nativa (comum). Nesse caso, você precisará declarar cada uma das funções existentes nela (através da cláusula Declare no VB.NET). Dê uma olhada na documentação .NET a respeito da declaração de funções de bibliotecas externas e acredito que você encontrará mais informações. Abraços, Graymalkin
-
Calcule apenas para as caixas que não estão vazias, percorrendo todas. Exemplo: dim soma as double, valor as double for each caixa in me.controls if typeof caixa is textbox then if trim(caixa.text)<>"" then valor = cdbl(caixa.text) soma = soma + valor endif endif next caixa msgbox soma Sacou? Abraços, Graymalkin
-
Sempre faça uma busca antes de postar, ok? Bom, grave uma macro fazendo o que você quer e depois dê uma olhada no código-fonte dela (pelo editor do VBA). Vai bastar fazer uns ajustes. Abraços, Graymalkin
-
Experimente colocar isso aqui no evento KeyPress da TextBox: Dim possíveis() As Char = {"A", "B", "C", "D", "E"} If Array.IndexOf(possíveis, Char.ToUpper(e.KeyChar)) < 0 Then e.Handled = True End If Seria isso? Abraços, Graymalkin
-
Já tentou dar um Refresh após apagar os dados? Abraços, Graymalkin
-
Sim, uma classe. Cole isso aqui em uma unit: unit Unit2; interface type TDadosTrn = class public Funcao : string; XMLDataHoraGeracao, XMLCD, XMLMSG, XMLNumero, XMLCDLoja, XMLDataHoraTransacao: string; end; implementation end. Daí, fazendo referência a essa unit (pela cláusula Uses), você poderá criar um objeto assim (e preencher seus atributos também): var objeto : TDadosTrn; begin objeto := TDadosTrn.Create; objeto.Funcao := 'teste'; objeto.XMLDataHoraGeracao := '18/06/2005 00:58:00'; end; Porém, a parte de que comentei seria isso aqui: var objeto : TDadosTrn; pont : Pointer; begin objeto := TDadosTrn.Create; objeto.Funcao := 'teste'; objeto.XMLDataHoraGeracao := '18/06/2005 00:58:00'; pont := objeto.FieldAddress('Funcao'); end; Note que em "pont" está um ponteiro para o membro "Funcao" do objeto. Entretanto, como eu disse anteriormente, não sei como manipular esse ponteiro para poder ler ou escrever no membro (mas deve haver um jeito...). Abraços, Graymalkin
-
Experimente o componente Py.Sendmail: http://www.graymalkin.globalhosts.com.br/pysendmail.asp Tem um exemplo em Delphi. Abraços, Graymalkin