Ir para conteúdo
Fórum Script Brasil

Duduh_Capixaba

Membros
  • Total de itens

    258
  • Registro em

  • Última visita

Tudo que Duduh_Capixaba postou

  1. Que bom que o código te serviu, estamos aí pra isso! Só cuidado com esses vacilos. Você viu que o Jhonas editou seu post, certo?! Foi seu último aviso. Cuidado ao postar. Abraço!
  2. Acesse o DataModule (Shift+F12) e visualize sua Unit (F12). Qual o nome da Unit do DataModule (nome da aba da Unit)? Acrescente este nome ao uses do seu formulário. Se não der certo, é porque o seu DataModule não está presente no seu projeto. Para adicioná-lo, vá em Project > Add to Project (Shift+F11) e abra o arquivo .PAS referente ao seu DataModule. Para ter certeza de que seu DM realmente não está relacionado ao seu projeto, vá em Project > Remove from Project. Se o Form "DM" que o Delphi está procurando não estiver na lista de Forms, você deverá adicioná-lo como expliquei acima.
  3. Sua Query não deu certo porque você não indicou para ela o que é ":parametro". Tente assim: Query1.SQL.ADD(´select * from Arquivo´); Query1.SQL.ADD(´where CAMPO = :paramentro1´); Query1.SQL.ADD(´order by CAMPO´); Query1.Params[0].AsFormatoCampo := DadosParaCampo; Onde "AsFormatoCampo" é o formato do seu campo: String, Float, Integer, Date... E "DadosParaCampo" é o valor variável que "CAMPO" vai receber. Pode ser um Edit ou qualquer outro componente. Se for usar uma tabela, sete a propriedade Filtered para True, e preencha a propriedade Filter. Exemplo: Table1.Filter := 'CODCLIENTE = 100'.
  4. Você já experimentou fazer esse SELECT fora do Delphi, em alguma ferramenta para o MySQL? Tente fazer alguns testes fora da sua aplicação para ver qual é o resultado.
  5. É uma idéia meio na base da gambiarra, mas deu certo. Teste o código abaixo: Para testar esse código, sete a propriedade KeyPreview do Form como true, e coloque um Button e um Label no Form; var Form1: TForm1; Tecla: Boolean; implementation {$R *.dfm} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = 17 then Tecla := True; end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Tecla := False; end; procedure TForm1.Button1Click(Sender: TObject); begin if Tecla then Label1.Caption := 'O botão foi pressionado com a tecla Ctrl pressionada.' else Label1.Caption := 'O botão foi pressionado sem a tecla Ctrl.'; end; Outra coisa cara, o Jhonas vai chamar sua atenção "de novo". Você está postando sempre em caixa alta. Tente seguir as regras do fórum. Postar todo o texto em caixa alta é proibido. Abraço!
  6. Fala Jhonas! Cara, eu entendi a mensagem de erro. O que eu não sei é de onde ele está tirando esse valor nulo. Valor nulo de onde, de quem?! De um campo da tabela? E se for, ele está tentando converter o quê??? O que eu não estou conseguindo entender é que sem rodar o projeto, os dados são mostrados no Grid sem erros. Bem estranho isso!
  7. Olá amigos. Ainda fazendo alguns testes de conexão com componentes diferentes, me deparei com o seguinte problema... Estou tentando fazer uma conexão de uma base Firebird pelos componentes da palheta ADO. Primeiro instalei os drivers ODBC do Firebird e criei um Alias chamado "Teste" na fonte de dados ODBC do Windows. - adicionei um ADOConnection e setei a fonte de dados Teste. Usuário e senha digitados corretamente; - adicionei um ADOTable, relacionei com o ADOConnection e setei uma tabela; - adicionei um DataSource e relacionei com o ADOTable; - adicionei um DbGrid e relacionei com o DataSource. Para testar a conexão, setei a propriedade Active do ADOTable para True. Os dados foram mostrados corretamente no DbGrid. Mas quando executo a aplicação, recebo a seguinte mensagem de erro: "Project Teste.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process stopped. Use Step or Run to continue." Este erro acontece na criação do Form, no código "Application.CreateForm(TForm1, Form1)". Ele só acontece se eu tentar rodar o projeto com a tabela ativada, ou se eu tentar ativá-la com o Form já criado. Eu consigo abrir essa mesma base de dados com outras conexões normalmente. Abraço!
  8. Você quer criar códigos de barra e imprimi-los, ou apenas ler um código de barras e armazenar seus dados em um banco?
  9. Pois é Jhonas, eu acho o BDE bem prático e rápido. Por que então tantas pessoas o criticam?! Você acha que construindo uma aplicação de pequeno porte com os componentes do BDE eu estaria perdendo em performance ou em algum outro quesito? Obrigado pela resposta anterior. Abraço!
  10. Marcos, e por um acaso esses dados que você adiciona no segundo Form, são os mesmos dados mostrados no Grid do primeiro Form? Existe algum código no evento OnActivate ou OnCreate do segundo Form? Estou perguntando tudo isso, porque pela lógica, você teria que fechar a Query antes de adicionar ou alterar dados do banco. E quando você fecha uma Query, e essa estiver relacionada a algum DataSource, o Grid com certeza perderá a conexão até que você reabra a Query.
  11. Pois é isso que eu estou tentando te explicar. Não adianta você fazer um formato na hora de importar os dados para sua base. Digamos que o campo ALT esteja setado para mostrar duas casas decimais. Com o format, o que você vai conseguir é isso: 146,488 > 146,50. Não sei se é isso mesmo que você quer. Se for, insista no Formatfloat, pois eu fiz um teste aqui com o mesmo código que você deixou acima e deu certo. Importei um número 1,123 e ele se tornou o número 1,10. Agora, se você pretende tranformar um número 146,488 em 146,5, aí já não adianta códigos no Delphi, você terá que estudar um meio do campo ALT ser configurado dessa forma. --------------------------- Edição: Analizando a base de dados Firebird, vi que não há como alterar a quantidade de casas decimais em um campo Float. O ideal seria você mudar seu campo para Decimal. Aí sim, você conseguirá ter o resultado que pretende. Abraço!
  12. Duduh_Capixaba

    Dbgrid

    Eu tenho um projeto aqui onde eu faço uso desse sincronismo. Veja se seria isso: enquanto o usuário navega pelo scroll do Grid1, o Grid2 vai navegando junto, automaticamente. Seria isso? O problema é que eu não uso o DbGrid do Delphi, e sim um componente de terceiros, o dxDbGrid. Nele, existe uma propriedade chamada LeftCoord e um evento chamado OnChangeLeftCoord. Quando esse evento é executado, eu faço com que um grid receba o valor da propriedade LeftCoord do outro. Assim, eles "andam" juntos. Mas para o DbGrid você teria que achar uma propriedade semelhante a isso. Bons estudos!
  13. Olá Marcos! O que tem nesse outro Form que você está abrindo? Quando você fecha este Form, ele executa alguma coisa? Você usa um Data Module para guardar os DataSource, ou eles ficam cada um em um Form? Detalhe um pouco melhor esse seu projeto.
  14. Não, não... Eu quis dizer pra retirar todo o código do Formatfloat. No caso, ficaria assim: modulo.cds_bombasALT.value := MSExcel.ActiveSheet.Range['AJ' + IntToStr(i)].Value; Porque, mesmo que você faça um formato com apenas uma casa decimal com o Formatfloat, se o campo da sua base de dados estiver setado para duas casas, a única diferença é que ele vai importar com um zero no final. No caso, o 146,488 apareceria no seu banco como o número 146,50, entendeu?!
  15. É isso mesmo. Com a combinação de teclas Ctrl+espaço, o Delphi abre uma lista de possíveis códigos. Só atenção para que não haja outros programas utilizando a mesma combinação de teclas, por exemplo, o MSN.
  16. O que acontece se você retirar o Formatfloat?
  17. Você pode até deixar o Close após gravar, mas sempre antes de se movimentar, terá que abrir a tabela. Abraço!
  18. Este código salva alguma coisa? Só estou vendo o Post, mas cadê os campos da tabela rebendo os dados??? Bem, vamos ao que interessa... Você está tentando navegar pela tabela tblCadPro, certo?! Não trabalho com bases Paradox, mas talvez não seria por causa desse Close no final? Tente navegar pelos registros com a tabela aberta, pra ver o que acontece. E qual é a linha que é apontada no erro?
  19. Posta o código que você está usando para salvar. Deve estar lá o problema.
  20. No caso, você tem que ter esses números arredondados dentro da sua base por obrigatoriedade, ou você quer mostrar esses dados arredondados dentro do seu projeto? Fica mais fácil você usar formatos de arredondamentos dentro do Delphi.
  21. Você quis dizer 146,5, certo?! Acredito eu que basta você setar no seu banco apenas uma casa decimal depois da vírgula. No Access, por exemplo, essa tarefa é bem simples. Diga qual é o banco que você usa para podermos ajudar melhor. Mas ainda acho que o melhor método é você criar uma coluna a mais na sua tabela Excel e arredondar por lá mesmo. O Excel te dá muitas opções fáceis para arredondamentos. Assim você evitará códigos desnecessários na sua aplicação.
  22. Tente apontar para o primeiro ou último registro após salvar seu registro. Talvez o ponteiro esteja meio que "perdido". Uma outra solução para seu problema, seria apontar para o último registro e somá-lo. Meu teste ficou assim: Se você usar uma Query: dm.Query1.SQL.Add('SELECT * FROM ESTAPRO.dbf ORDER BY PROCOD'); dm.Query1.Open; dm.Query1.Last; tblCadPro.FieldByName('PROCOD').AsInteger := dm.Query1.FieldValues['CODPROD'] + 1; Se você usar uma tabela: Primeiro, sete a propriedade IndexFieldNames como CODPROD, assim ela vai ordenar sua tabela pelo código. tblCadPro.Open; tblCadPro.Last; tblCadPro.FieldByName('PROCOD').AsInteger := tblCadPro.FieldValues['PROCOD'] + 1;
  23. Cara, creio que o discador do Windows não seja um executável, assim como as "Propriedades de Data e hora" do Windows não são. Só pra você ter uma idéia do que eu estou falando, o arquivo de acesso às "Propriedades de Data e hora" do Windows fica em: \WINDOWS\system32\timedate.cpl. Outro exemplo são as "Propriedades do sistema" do Windows, que é o arquivo sysdm.cpl, dentro de system32 também. O pior não vai ser você conseguir executar o discador do Windows, mas sim manipulá-lo como você quer, tipo, discar.
  24. Bem, acho que achei uma alternativa. Não sei se é bem isso, mas setando a propriedade PacketRecords com o valor 1, a visualização dos dados no Grid ficou rápida, assim como no exemplo com o BDE. Adicionei um Edit ao form, preenchendo ele com o RecordCount do ClientDataSet, e ele me retorna apenas o número dos registros exibidos na tela. Caso eu dê um comando para o ClientDataSet exibir o último registro, aí sim, acontece um pequeno lag. Já com o BDE, o RecordCount traz o número total de registros e não congela quando aponto para o último registro. Será que o BDE é mais vantajoso?
×
×
  • Criar Novo...