Ir para conteúdo
Fórum Script Brasil

hencker

Membros
  • Total de itens

    165
  • Registro em

  • Última visita

Posts postados por hencker

  1. Tem a forma simplificada de fazer isso!

    procedure TForm1.FormCreate(Sender: TObject);
    Var
    Serial:DWord;
    DirLen,Flags: DWord;
    DLabel : Array[0..11] of Char;
    
    begin
    Try
    GetVolumeInformation(PChar('C:\'),dLabel,12,@Serial,DirLen,Flags,nil,0);
    label1.Caption:= IntToStr(Serial);
    Except
    label1.Caption:= 'Não foi possível executar a operação!';
    end;
    end;
    

    Outra dica importante é fazer com que o sistema trave todo o mes, e peça uma nova atualização, issto também dá um controle maior sobre as ações do software.

    Tem um componente chamado TimeStop que faz isso e na data especificada ele trava o sistema!

  2. Nos meus sistemas eu faço o seguinte:

    Na primeira utilização do sistema ele mostra uma tela de desbloqueio, com dois numeros, a hora atual e um edit:

    O primeiro numero é o nº de série do HD / Memória RAM / velocidade do pocessador

    O segundo é um resultado de um algoritimos qeu eu criei baseado no nº do HD e na hora da tentativa de abertura do sistema

    A hora é a do sistema mesmo, normalz:

    Eu forneço um telefone para que meus clientes liguem, eu cadastro

    os dados : nº de série do HD / Memória RAM / velocidade do pocessador, e mesmo que os dados sempre batam, eu pergunto "Houve alguma alteração no HardWare?". Eles sempre respondem que não... se mudarem de computador vai mudar, provavelmente, a velocidade do processador ou a quantidade de memória, ai eles me ligam para ativar o produto e eu saberei que não é o mesmo computador...

    Depois do produto ativado eu gravo no registro do sistema q o software foi registrado, e toda vez que o sistema é aberto ele faz a verificação do registro pra evitar q depois do destravamento seja feita uma cópia fiel e enviada para outro comp.!!!

    Depois dessa notícia estou pensando em adquirir mais dados do computador do cliente para dificulte ainda mais esse tipo de trapaça!

  3. Consegui, em partes:

    Troquei:

     = '+#39+EditPesquisa.Text+#39'');
    
    Por:
     LIKE '+#39+Trim(EditPesquisa.Text)+'%'+#39);
    
    Porém assim, utilizando do exemplo acima, somente se eu digitar Tiago, porém se eu digitar Baroni ele num localiza... sad.gif alguém sabe como fazer funcionar plz... Quanto a selecionar em quanto digita resolvi colocando isso no evento onKeyPress do Edit:
    procedure TMasterPesqClientes.EditPesquisaKeyPress(Sender: TObject;
      var Key: Char);
    begin
      inherited;
      btnLocalizaClick(Self);
    end;
    

  4. Estou usando o seguinte código para fazer pesquisas no meu Banco de Dados:

    case RGOpcoes.ItemIndex of
    1 : try
                         with DMGeral.ZQClientes do begin
                              Close;
                              SQL.Clear;
                              SQL.Add('SELECT * FROM CLIENTES  WHERE NOME = '+#39+EditPesquisa.Text+#39'');
                              Open;
                          end;
                      except
                          Erro('Não foi possível realizar a pesquisa, verifique os parâmetros!');
                      end;
    

    Porém dessa forma ele localiza somente pela string inteira, por exemplo:

      Se eu tiver no banco o dado "Tiago Baroni", ele somente vai localizar os dados desse entrada se eu digitar o campo inteiro, no caso "Tiago Baroni";

    Eu queria que se eu digitasse somente "Tiago" ele localiza-se todos os registros com o nome Tiago em alguma parte do campo...

    Entenderam? unsure.gif

    Teria como fazer isso em quanto digito, tipo, ir digitando e ele ir filtrando?

  5. Uso D7 mas tenho tb o D5 e meu D8 deve chegar essa semana, todos originais (graças a Deus...)...

    Me decidi, li um artigo no site do CAPABLANCA.::Capablanca - A Delphi Point::. e decidi usar o FireBird... quando for implementar para rede eu posto aki...

    Tenho uma dúvida agora: Existe algum componente além do ZeosDBO para acessar o Fire, e onde eu consigo o Fire mais atual para download?

    A propósito: nesse projeto vou usar o D7 até me acostumar e aprender o D8...

  6. O que vocês acham do ACCESS??? A unica coisa q me deixa receoso com ele é que, pelo que me disseram ele não cria novas tabelas em tempo de execução. Meu prob. com o FireBird e com o Interbase é que nunca consigo configurar eles pra rede... sad.gif (fora que o Interbase é Share). Quanto ao FireBird tb. num consigo acessar ele, se pelo menos eu tivesse os compnentes necessário para acessa-lo...

  7. Como tudo na vida evolui, eu tb to evouindo, finalmente comprei meu D7, tenho vários códigos fontes em D5.

    Vários componentes do D5 não são instaláveis no D7, será que existe uma forma de trasnportar???

    Meus códigos fontes apresentam uns erros loucos, é normal???

  8. O que é mal para você???

    Antes de mais nada deve-se entrar no meio ético. O que é certo para uns é errado para outros... NetSky era certo para quemn estava infectado, porém infectava o computador do usuário de uma outra forma...

    O que fica como dica para quem deseja se aprofundar é: ESTUDEM!!!

  9. Ufs... consegui "contornar" o problema... Importante frisar contronar porque não resolvi porém encontrei uma solução...

    A solução: Abri o Delphi 5 e o Delphi 7 ao mesmo tempo e fui transcrevendo o código...

    Agora ta dando um outro erro:

    Exception EAccessViolation in module DBAdmin.exe at 00002498.

    Access violations at address 00422498 in module 'DBAdmin.exe'. Read os address 01E6C7F0.

    Detalhe: O programa DBAdmin.exe funciona perfeito, esse erro aparece a hora q eu fecho o programa...

    sad.gif

  10. Ai galera estou com o seguinte problema:

    [Fatal Error] S_Gerente.dpr(10): Unit StdActns was compiled with a different version of StrUtils.TStringSearchOptions
    

    Isso aparece a cada vez que tento compilar meu programa, ele foi originalmente feito em D5, estou tentando mudar seus fontes agora para D7 e aparece essa msg de erro, tentei fazer uma coisa q já tinha sido postada aki no forum mais não deu certo...

  11. Surgiram pra mim novas dificuldades quanto minha migração para o componente TQuery...

    No TClientDataSet eu fazia o segunte procedimento para verificar se tinha sido possível realizar uma alteração no banco...

    procedure TMasterCad.TBApagarClick(Sender: TObject);
    var
      Codigo_Retornar: Integer;
    begin
      inherited;
      if Confirma('Excluir ?')
         then begin
              with TabelaMaster do begin
                   Codigo_Retornar := TabelaMaster.FieldByName(Chave).AsInteger;
                   Delete;
                   if ApplyUpdates (-1) <> 0
                      then begin
                           Aviso('Exclusão não efetuada!');
                           UndoLastChange(True);
                      end
                      else Devolver_Codigo(Tb_Banco, Chave, Codigo_Retornar);
              end;
              case Resetar_Tabela of
                   stResetar : Reseta_Tabela;
              end;
         end;
    end;
    

    ... funcionava perfeitamente.

    Com o componente TQuery ele até reconhece a funcão ApplyUpdates porém dá a seguinte mensagem de erro:

    [Error] UMasterCad.pas(98): Too many actual parameters

    Acho q ele não está reconhecendo o (-1)... ( if ApplyUpdates (-1) <> 0)...

    Outro problema que acontece é que, com o TClientDataSet, a função UndoLastChange(True); fazia com que a última ação no componente fosse desfeita (no caso a exclusão do registro do banco de dados), existe alguma função semelhante para o TQuery???

    sad.gif

  12. Consegui!!!

    Fiz o seguinte galera:

    No lugar de:

    if Valor_Chave <> ''

        then SQL := SQL + (' FROM '+ Tab_Banco + ' WHERE '+ Chave + '= "'+  Valor_Chave +'"')

        else SQL := SQL + (' FROM '+ Tab_Banco + ' WHERE '+ Chave + ' IS NULL ');

    with ClienteDMCadastros.CDGeral do begin

          Close;

          DataRequest(SQL);

          Open;

    Coloquei:

    
     if Valor_Chave <> ''
         then SQLp := SQLp + (' FROM '+ Tab_Banco + ' WHERE '+ Chave + '= "'+  Valor_Chave +'"')
         else SQLp := SQLp + (' FROM '+ Tab_Banco + ' WHERE '+ Chave + ' IS NULL ');
    
    
      with DMCadastros.QGeral do begin
           Close;
           SQL.Clear;
           SQL.Add(SQLp);
           Open;
    

    Detalhe importante no primeiro código SQL era uma variável e não a função, no segundo caso tive que mudar o nome da variável para não haver conflito!!!

    ...podem fechar!!!

×
×
  • Criar Novo...