Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Para saber se a tecla BackSpace foi pressionada procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_BACK then ShowMessage('A tecla Backspace foi pressionada'); end; Simular o pressionamento da tecla BackSpace procedure TForm1.Button1Click(Sender: TObject); var KeyState: TKeyboardState; begin GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_BACK ] = 0) then begin Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or 0, 0); Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end else begin Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or 0, 0); Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end; end; OBS: Veja se funciona abraço
  2. Esse erro ocorre porque o caminho especificado para o banco de dados não foi encontrado OBS: Veja se não esqueceu de colocar a string entre aspas dbmodelo = 'd:\Program Files\modelo\database\modelo.fdb' ; database := modelo01:dbmodelo; Connected := True; // a conexão só e feita depois de ter passado o caminho do banco abraço
  3. Jhonas

    Duvida MainMenu

    Na propriedade Color voce especifica a cor de fundo do Form abraço
  4. Jhonas

    duvida com Keybd

    Entendendo a função Keybd_Event Esta função permite simular o pressionamento de uma tecla. Perceba que se voce estiver com a tecla CTRL ou ALT pressionada e pressionar outras teclas dará a impressão que o teclado ficou maluco. Agora vamos supor que voce pressionou a tecla Caps Lock .... Então como saber se está ativada ou desativada ? Para simular o pressionamento de uma tecla é preciso chamar keybd_event duas vezes. Primeiro simulamos OnKeyDown e depois OnKeyUp. Assim, a tecla Caps Lock pode ser ligada ou desligada com o seguinte trecho de código: procedure TForm1.Button1Click(Sender: TObject); var KeyState: TKeyboardState; begin GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_CAPITAL] = 0) then begin // ligado o Caps Lock Keybd_Event(VK_CAPITAL, 1, KEYEVENTF_EXTENDEDKEY or 0, 0); Keybd_Event(VK_CAPITAL, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end else begin // desligado o Caps Lock Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY or 0, 0); Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end; end; Veja o codigos de teclas virtuais http://www.arquivodecodigos.net/arquivo/re...as_virtuais.php O Mesmo principio vale para o seu código keybd_event(vk_control,0,0,0); keybd_event(Ord('V'),0,0,0); keybd_event(vk_control,0,KEYEVENTF_KEYUP,0); keybd_event(vk_return,0,0,0); keybd_event (VK_MENU, 0, 0, 0); keybd_event(VK_F4, 0, 0, 0); Só como observação veja este: keybd_event(VK_F4, 0, 0, 0); voce simulou o pressionamento da tecla F4 mas seria o mesmo que continuar pressionando a tecla o tempo todo ... por isso o seu teclado parece que ficou desconfigurado OBS: A lógica é saber se a tecla continua pressionada ou não GetKeyboardState(KeyState); // testar o estado do teclado abraço
  5. Voce está se referindo ao desenvolvimento ou a execução do programa ? abraço
  6. Faça um teste bem simples ... feche todas as tabelas do seu projeto, e depois tente fazer o backup e veja o que acontece. abraço
  7. A captura de exceções é diferente da captura do nome do componente em foco Faça um teste ... crie um form coloque um memo e outros componentes ... no evento OnEnter do Memo coloque o código baixo procedure TForm1.Memo1Enter(Sender: TObject); begin memo1.lines.add(TWinControl(Sender).Name); end; No evento onEnter de cada componente direcionar para o OnEnter do Memo1 OBS: teclando o TAB voce vera que o foco mudará para cada componente no form e o nome de cada componente que recebeu o foco aparecerá no Memo. Quanto a captura de exceções, faça uma busca no forum http://scriptbrasil.com.br/forum/index.php...te=exce%E7%F5es abraço
  8. Acho que voce deve fazer uma varredura em todo o seu projeto ... esse erro é: Não pode abrir arquivo significa que existe claramente uma tentativa de abrir alguma tabela depois que ela foi fechada. A ideia é a mesma para o ADO abraço
  9. if dbgrid1.selectedindex = 1 then onde selectedindex é o numero da coluna do dbgrid que voce deseja testar exemplo: se selectedindex = 0 significa que a coluna a ser testada é a coluna 1 se selectedindex = 1 significa que a coluna a ser testada é a coluna 2 se selectedindex = 2 significa que a coluna a ser testada é a coluna 3 Voce tambem pode testar o nome do campo da tabela if selectedindex = 1 then begin if (CDS_FuncaoCOD_EMP.AsInteger = 0) or (CDS_FuncaoCOD_EMP.AsString = '') or (DBGrid1.Columns[0].Field.AsInteger = 0) then begin DBGrid1.SetFocus; DBGrid1.SelectedIndex := 1; exit; end; end; abraço
  10. Faça uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...hlite=criar+exe http://scriptbrasil.com.br/forum/index.php...lite=exe+dentro abraço
  11. Lembre-se que uma query é apenas uma copia de uma parte do seu banco de dados, mante-las abertas não pesa no processamento, somente implica em não atualização dos dados pela rede. Uma vez que os registros da tabela foram carregadas para o dbgrid, deixa de existir processamento ... a lentidão pode ter vários causas ( trafego de rede, quantidade de registros manipulados, processador do micro, memória disponivel, outros processos rodando com prioridade maior, etc ) OBS: tenho uma janela em um de meus sistemas com mais de 30 queries, entretanto procuro manter abertas somente aquelas em uso atual as demais mantenho fechadas até que seu uso seja necessario abraço
  12. Exemplo usando o comando FindNearest procedure TForm1.Button1Click(Sender: TObject); begin TCadProd1.FindNearest([trim(Edit1.Text)]); end; abraço
  13. Esse erro ocorre quando em alguma outra parte do seu programa a conexão estiver sendo exigida por alguma tabela aberta Tente usar esta procedure, antes de efetuar o backup procedure TForm1.desconectar; var i: shortInt; begin for i := 0 to componentCount - 1 do begin if ( components[i] is TCustomConnection ) then ( components[i] as TCustomConnection ).Close; end; end; abraço
  14. Tente primeiramente as soluções dadas pela microsoft Outra maneira seria ficar testando a conexão com o banco de tempos em tempos, e em caso de falha na conexão voce pode dar a mensagem ao usuário. http://74.125.93.132/search?q=cache:NxLl0a...=clnk&gl=br abraço
  15. e num é motivo pra vim dois na ignorancia(do tipo eu sou o moderador bonzao enton fika de boas)... Amigo, sou voluntario no forum, não ganho nada para ajudar a outros .... entretanto comentários como esse seu, me fazem pensar em desistir de ser moderador e de ficar perdendo o meu tempo aqui. Apesar de existirem muitos membros neste forum, são poucos que se prestam em ajudar ... e praticamente a totalidade das dúvidas é para solucionar um problema pessoal e dificilmente o membro que é ajudado se dispõe a ajudar outros. OBS: Sem regras o que sobra é anarquia ... pense nisso !! abraço
  16. Artigo sobre esta placa http://www.clubedohardware.com.br/artigos/1240 Teste para placa de video http://freestone-group.com/download/VideoC...tyTestSetup.exe Outros testes http://www.pudn.com/dl.asp?id=300030 OBS: Retire a placa lateral do micro ( se puder, podem não aceitar a garantia se o lacre estiver partido ) deixe passar alguns minutos e depois verifique a temperatura ( não rode nenhum programa ) depois teste usando um jogo ou outro programa que exija processamento da placa de video, e verifique novamente a temperatura se o aumento da temperatura na placa de video foi motivado pelo jogo, o mais correto seria voce fazer uma atualização da sua BIOS abraço
  17. Faça uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...e=salvar+imagem abraço
  18. Voce pode testar o campo do dbgrid, se ele não estiver preenchido o foco do cursor deve retornar ao campo, até que a condição esteja satisfeita. exemplo: Use o evento OnKeyPress do DBGrid procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if selectedindex = 1 then begin if CDS_CadastroFUNCAO.Value = '' then begin DBGrid1.SetFocus; DBGrid1.SelectedIndex := 1; exit; end; end; end; abraço
  19. O erro "Tempo limite expirou" ocorre geralmente quando uma instância do Mecanismo de Banco de Dados do SQL Server não está sendo executada, quando o nome do servidor foi digitado incorretamente ou quando há problemas de rede ou firewalls. Veja a solução neste endereço http://msdn.microsoft.com/pt-br/library/ms190181.aspx abraço
  20. Voce sabe trabalhar com o registry do windows ? Pesquise no forum http://scriptbrasil.com.br/forum/index.php...ighlite=regedit abraço
  21. Se voce colocasse o erro que aparece no começo, quem sabe já teria uma solução para o problema abraço
  22. Voce pode até fazer atualizações no seu executável, mas envolvendo modificações no seu banco de dados ( exemplo: mudança de estrutura ou alterações de tipos ou tamanhos de campos ), voce terá que fazer isso via código pelo seu programa. abraço
  23. Jhonas

    Ib_grid

    Não tenho este componente instalado, mas voce pode procurar no forum alguma solução parecida para um dbgrid comum ... http://scriptbrasil.com.br/forum/index.php...highlite=dbgrid abraço
  24. Queria Fazer o Campo Senha aparacer Tipo uma Máscara (****) em um inputbox Faça as modificações no código para o seu uso unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Const InputBoxMessage = WM_USER + 200; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage; public end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage); var hInputForm, hEdit: HWND; begin hInputForm := Screen.Forms[0].Handle; if (hInputForm <> 0) then begin hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil); SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0); end; end; procedure TForm1.Button1Click(Sender: TObject); var InputString: string; begin PostMessage(Handle, InputBoxMessage, 0, 0); InputString := InputBox('Senha', 'Digite a senha', ''); end; end. abraço
  25. Placa de vídeo: GeForce GTS 250 512Mb / 256 Bits Voce não especificou mas a placa: XFX Nvidia Geforce GTS 250 512MB 256bits .. esquenta mais do que a VGA Nvidia Geforce GTS 250 512MB 256bits Entretanto, a placa Placa-mãe: Asus P5Q, permite que voce altere a voltagem de alimentação da AGP atraves das configurações a BIOS. Outro motivo pode ser sugeira nos contatos da placa, neste caso retire a placa e limpe os contatos usando alcool isopropilico Veja tambem a rotação do cooler, pois uma baixa rotação prejudica a transferencia de calor OBS: Se tiver um compressor de ar disponivel, passe um ar comprimido pela placa. dependendo da temperatura aqui, o computador renicia Muito cuidado, computador reiniciando pode ser indicio de processador com problemas ou algum hardware em vias de pifar. abraço
×
×
  • Criar Novo...