Ir para conteúdo
Fórum Script Brasil

José Luiz

Membros
  • Total de itens

    98
  • Registro em

  • Última visita

Tudo que José Luiz postou

  1. Obrigado pela resposta. Em princípio resolveria o meu problema, porém vou explicar melhor a minha necessidade. Tenho um DBGrig, com uma tabela Paradox, indexado por três campos diferentes, ou sejam DATA, CODIGO e DESCRICAO. Inicialmente o meu DBGrid está indexado por DATA. Ao pressionar a seta para a direita, o índice deve passar para CODIGO. Estando em CODIGO, se eu pressionar a seta para a esquerda, volta para DATA, e se pressionar para a direita passa para DESCRICAO. A rotina funciona normalmente, porém não permanece no mesmo registro. já tentei usar o BookMark, mas como muda de índice, dá erro. já tentei criar variáveis como mDATA, mCODIGO E mDESCRICAO, e depois um FindKey. Também não funcionou. Acho que a função interna do Delphi que faz mudar de registro age antes de eu salvar as variáveis de memória. Tem alguma outra solução ? Obrigado, José Luiz.
  2. Quando estou em um DBGrid e pressiono as teclas de setas ( diretita ou esquerda ), o foco muda de coluna, mas se estou com a opção DgRowSelect = True, muda de registro. Como posso fazer para que em modo DgRowSelect = True o DBGrid não mude de registro ? Obrigado, José Luiz.
  3. Outra forma fácil, é salvar o arquivo excel como DBF ( Dbase III ), e a seguir transformar este arquivo em DB ( Paradox ) Para passar de DBF para DB, basta entrar no DataBase Desktop, < Tools > / < Utilities > / Copy . Informe o arquivo desejado com extensão DBF e pressione o OK na sequência, coloque o nome do arquivo desejado com a extensão DB, e está pronto. Qualquer dúvida, avise. José Luiz.
  4. Verifique se a propriedade Active da Table não está True. Se estiver, coloque Active := False ( ao menos na hora de indexar os arquivos, pois isso só é necessário uma vez ) Você pode abrir a Table no OnShow do seu formulário principal. Table1.Open ; Espero ter ajudado. José Luiz.
  5. Preciso ter um Edit que ao digitar : 1 ) não apague os dados atuais, e ; 2 ) que não entre em modo Insert, ou seja, que a medida que eu vou digitando, vai escrevendo em cima dos valores que já estão colocados inicialmente. O primeiro problema já descobri, alterando o AutoSelect para False, mas o segundo não estou conseguindo. Obrigado, José Luiz
  6. Obrigado Jhonas, Já resolveu o meu problema.
  7. Necessito pegar o nome do computador onde o programa está sendo executado. estou utilizando a função abaixo, ( colocando Registry no Uses ) function TForm1.Getcomputer : string; var registro : tregistry; begin registro:=tregistry.create; registro.RootKey:=HKEY_LOCAL_MACHINE; registro.openkey('System\CurrentControlSet\Services\VXD\VNETSUP',false); result:=registro.readstring('ComputerName'); end; mas está retornando uma string em branco. Obrigado, José Luiz
  8. Prezado Micheus. Realmente a resposta que eu precisava estava no site indicado. Obrigado, José Luiz
  9. Outra forma, é criando funções, como as abaixo. PADL - Texto na esquerda PADC - Texto centralizado PADR - Texto na direita Os espaços em branco podem ser preenchidos por qualquer caracter, inclusive o espaço. ( ' ' ) Function TProc.PADL ( mTEXTO, mCARAC : string; mTAM : Integer ): String; var mRET : String ; mPREENCHE : string ; i : Integer; mFALTA : Integer; begin mRET := ''; if length ( mTEXTO ) > 0 then begin mTEXTO := Copy ( mTEXTO, 1, mTAM ); mFALTA := mTAM - Length ( mTEXTO ); mPREENCHE := ''; for i := 1 to mFALTA do begin mPREENCHE := mPREENCHE + mCARAC; end; mRET := mTEXTO + mPREENCHE ; end; result := mRET; end; // *********************************************************************** Function TProc.PADC ( mTEXTO, mCARAC : string; mTAM : Integer ): String; var mRET : String ; mPREENCHE : string ; i : Integer; mFALTA : Integer; begin mRET := ''; if length ( mTEXTO ) > 0 then begin mTEXTO := Copy ( mTEXTO, 1, mTAM ); mFALTA := mTAM - Length ( mTEXTO ) ; mPREENCHE := ''; for i := 1 to mFALTA do begin if i MOD 2 = 0 then mPREENCHE := mPREENCHE + mCARAC; end; mRET := mPREENCHE + mTEXTO + mPREENCHE ; end; result := mRET; end; // *********************************************************************** Function TProc.PADR ( mTEXTO, mCARAC : string; mTAM : Integer ): String; var mRET : String ; mPREENCHE : string ; i : Integer; mFALTA : Integer; begin mRET := ''; if length ( mTEXTO ) > 0 then begin mTEXTO := Copy ( mTEXTO, 1, mTAM ); mFALTA := mTAM - Length ( mTEXTO ); mPREENCHE := ''; for i := 1 to mFALTA do begin mPREENCHE := mPREENCHE + mCARAC; end; mRET := mPREENCHE + mTEXTO; end; result := mRET; end; Desta forma, o teu programa ficaria da seguinte forma : ( alinhando à esquerda ) while not Table1.Eof do begin Writeln(F, Padl ( Table1.Fields[0].AsString, ' ', 15 ) + ';' + Padl ( Table1.Fields[1].AsString, ' ', 40 ) + ';' + Padl ( Table1.Fields[2].AsString, ' ', 20 ) + ';' + Padl ( Table1.Fields[3].AsString, ' ', 40 ) + ';' + Padl ( Table1.Fields[4].AsString, ' ', 15 ) + ';' + Padl ( Table1.Fields[5].AsString, ' ', 15 ) + ';' + Padl ( Table1.Fields[6].AsString, ' ', 2 ) + ';' + Padl ( Table1.Fields[7].AsString, ' ', 8 ) + ';' + Padl ( Table1.Fields[8].AsString, ' ', 20 ) ); Table1.Next; end; Abraços, José Luiz.
  10. Obrigado Jhonas, pela resposta. Através dos Sites indicados, verifiquei que na realidade o código que eu necessito é o EAN 13 e não o 3 de 9. Se você souber como imprimir o EAN 13 no Quick Report, por favor me avise. Mais uma vez, obrigado, José Luiz
  11. Há algum tempo consegui aqui no Fórum, como fazer Código de Barras no formato 2 de 5, que me foi extremamente útil. ( agradeço imensamente aos colaboradores deste Fórum ) Necessito agora do Código 3 de 9. Alguém sabe como fazer ? Obrigado, José Luiz
  12. Obrigado Jhonas, meu problema foi resolvido. Um abraço, José Luiz.
  13. Tenho um objeto Memo, e gostaria que ele mudasse a cor do fundo ao passar o mouse em cima. Para trocar o cursor, utilizo : procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Memo1.Cursor := crHandPoint ; end; Ao fazer o mesmo para a cor, esta muda, porém ao sair do campo Memo, a cor alterada permanece, enquanto que o cursor retorna ao original. Tentei fazer Memo1.Color := clAqua ; Como fazer para que também a cor retorne à original ? Obrigado, José Luiz
  14. É possível iniciar um novo Form com a fonte 10 e não 8 como é o padrão ? Da mesma forma o Keypreview pode iniciar com True ao invés de False ? Obrigado, José Luiz.
  15. Alguns dos links que você passou eu já tinha visto, sem sucesso. Os exemplos do TeeChart realmente são excelentes. Nestes exemplos tem resposta para a minha dúvida, só que não consegui implementá-la. Depois de muitos testes, consegui descobrir que a rotina funciona com "Random Values", e não com "Dataset". Por que será ? Veja como ficou a rotina adaptada ao meu caso. procedure TF_GRAFICO.FormCreate(Sender: TObject); Procedure AddColors ( Series : TChartSeries ); var t : Longint; begin With Series, GetVertAxis do begin for t := 0 to Count-1 do begin if t mod 7 = 0 then // a cada sete dias, coloca a cor vermelha ValueColor[t] := clRed else // os outros dias são azuis ValueColor[t] := clBlue; end; end; end; begin Series1.FillSampleValues ( 100 ); AddColors ( Series1 ); end; Se eu passo o gráfico para "Random Values" funciona, porém quando retorno ao meu Dataset com uma Query, não. Obrigado, José Luiz.
  16. Fiz um gráfico, onde tenho os dias da semana no eixo X, e outros valores no eixo Y. Para uma melhor visualização dos dados, estou tentando alterar a cor do gráfico somente no domingo, ou seja, todos os dias da semana ficam em verde ( padrão ), e os domingos em vermelho. Alguém sabe como posso fazer isso ? Obrigado, José Luiz
  17. Realmente, o que faltava era colocar o ";0;" para a máscara funcionar. Obrigado, Micheus.
  18. Como posso formatar as colunas do DBGrid para Fone, Cep, CPF, etc ? Banco de dados DBF ( Clipper ) ou DB ( Paradox ). No AfterOpen do Banco de dados fiz o seguinte : Para formatar números, utilizei : ( BANCO.FieldByName ( 'VALOR' ) as tFloatField ).displayformat := '##,##0.00' ; e funcionou perfeitamente, ou seja, em qualquer DBGrid que eu chame este campo, o valor está formatado corretamente. Para Strings, tentei ( BANCO.FieldByName ( 'FONE' ) as tstringfield ).displayformat := '9999-9999' ; mas dá erro. Tentei também ( BANCO.FieldByName ( 'FONE' ) as tstringfield ).editmask := '9999-9999' ; mas só aparecem os 4 primeiros dígitos. Alguém sabe como executar esta formatação ? Obrigado, Bettega
  19. Tenho um DBGrid, onde na primeira coluna tenho o Fornecedor, nas seguintes os dias do mês, e na última o Total dos recebimentos. Ao editar diretamente no DBGrid, preciso capturar o valor da célula ao entrar, e ao sair. Desta maneira posso calcular o total, ou seja TOTAL = TOTAL - VALOR_INICIAL + VALOR_FINAL. Desta forma, mesmo que eu já tenha um valor anterior gravado em uma célula, o total ficará sempre correto. Como capturar o valor na entrada, e o valor da saída ? Lembrando que ao sair de uma célula, nem sempre vou mudar de coluna, pois posso sair da célula com a seta para baixo. Obrigado, Bettega
  20. Obrigado pela dica. Resolveu o meu problema.
  21. Quando eu crio índices através do DataBase Desktop, os arquivos tem a extensão NDX, e quando eu crio estes índices de dentro do programa, os índices são MDX. Como fazer para que os índices de dentro do programa sejam NDX ? Por exemplo : A rotina abaixo irá criar um arquivo ARQTESTE.DBF e um arquivo ARQTESTE.MDX. Eu gostaria que fossem criados os arquivos ARQTESTE.DBF e os arquivos TESTE_01.NDX e TESTE_02.NDX procedure TForm1.FormCreate(Sender: TObject); var NovaTabela : TTable ; begin NovaTabela := TTable.Create ( Form1 ) ; With NovaTabela do Begin Active := False ; TableName := 'ARQTESTE' ; TableType := ttDBase ; FieldDefs.Clear ; FieldDefs.Add ( 'NOME' , ftString, 30, False ); FieldDefs.Add ( 'CPF' , ftString, 11, False ); FieldDefs.Add ( 'ENDERECO', ftString, 30, False ); FieldDefs.Add ( 'TELEFONE', ftString, 8, False ); IndexDefs.Clear ; IndexDefs.Add ( 'TESTE_01', 'NOME', [] ); IndexDefs.Add ( 'TESTE_02', 'CPF' , [] ); CreateTable ; end ; end; Obrigado.
  22. Ao Compilar o programa, algumas vezes aparece a mensagem [Warning] Inclui.pas(463): Unsafe type 'PChar' na seguinte rotina: if Application.MessageBox ( PChar ( 'Telefone já registrado para a empresa : ' + ARQ_FONE.fieldByName ( 'EMPRESA' ).AsString + ' Deseja Registrar assim mesmo ?' ), ' Telefone existente ' , MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2 ) = IDNO then A rotina funciona perfeitamente, porém aparece o aviso ao compilar. Como resolver ? Obrigado
  23. Fiz um gráfico com o DBChart, onde tenho os dias da semana no eixo X. Como faço para alterar a cor somente das barras que correspondem aos domingos ?
×
×
  • Criar Novo...