Ir para conteúdo
Fórum Script Brasil

flavioavilela

Membros
  • Total de itens

    375
  • Registro em

  • Última visita

Tudo que flavioavilela postou

  1. eu sei, só que tem que ser no MessageDlg, entende...
  2. pegar a a versão eu sei... eu queria saber como que isso vai sendo incrementado... a cada compilação? a cada o que que vai sendo incrementado?
  3. bom dia pessoal... preciso que um MessageDlg venha já com o foco, sem precisar do uso do mouse... estou usando assim: SetForegroundWindow(FindWindow(nil, PWideChar('Warning'))); onde Warning é o título da janela do MessageDlg.... só que, a mensagem vem em primeiro plano, beleza, mas com o foco fora dela.... isso aqui é para uma aplicação para TEF, mais precisamente no módulo da VISA.... ele aparece uma tela onde tenho que escolher entre OK ou Cancelar... logo após isso, vem a MessageDlg... alguém pode ajudar???
  4. veja esses links, ve se ajuda: http://support.microsoft.com/kb/137890 http://social.technet.microsoft.com/forums...85-3049f25ba63c
  5. bom, eu sugiro para que crie uma tabela com Usuário, Data_Hora_Evento, Evento e outros atributos que queira colocar... assim, a cada operação do sistema, você grava nessa tabela... depois, fica fácil manipular os relatórios que você queira...
  6. bom dia, supondo que você tem Edit's, Label's, Memo's... tente assim: procedure Desabilita_Campos; var X: Integer; begin for x := 0 to FrmTal.ComponentCount - 1 do if FrmTal.Components[X] is TEdit then TEdit(FrmTal.Components[X]).Enabled:= false else if FrmTal.Components[X] is TLabel then TLabel(FrmTal.Components[X]).Enabled:= false else if FrmTal.Components[X] is TMemo then TMemo (FrmTal.Components[X]).Enabled:= false end; você pode também, criar uma procedure chamada Habilita_Campos, para setar o Enabled:= true... assim, você pode habilitar tudo e/ou desabilitar tudo quando precisar...
  7. bom dia a todos, para controlar a versão da minha aplicação e sempre mostrar na tela, estou fazendo assim: Function VersaoExe: String; type PFFI = ^vs_FixedFileInfo; var F : PFFI; Handle : Dword; Len : Longint; Data : Pchar; Buffer : Pointer; Tamanho : Dword; Parquivo: Pchar; Arquivo : String; begin Arquivo := Application.ExeName; Parquivo := StrAlloc(Length(Arquivo) + 1); StrPcopy(Parquivo, Arquivo); Len := GetFileVersionInfoSize(Parquivo, Handle); Result := ''; if Len > 0 then begin Data:=StrAlloc(Len+1); if GetFileVersionInfo(Parquivo,Handle,Len,Data) then begin VerQueryValue(Data, '\',Buffer,Tamanho); F := PFFI(Buffer); Result := Format('%d.%d.%d.%d', [HiWord(F^.dwFileVersionMs), LoWord(F^.dwFileVersionMs), HiWord(F^.dwFileVersionLs), Loword(F^.dwFileVersionLs)] ); end; StrDispose(Data); end; StrDispose(Parquivo); end; e para chamar, basta: Showmessage(VersaoExe); só que, o que quero saber é, o que eu faço que as versões vão mudando? cada contador desse, será incrementado de qual forma???
  8. bom, não sei se serve, mas, porque você não faz ao contrário: coloca esse computador nas estações, ao invéz do servidor (não é possível que todos os pc's das estações vao dar pau ao mesmo tempo)... assim, você busca nas estações pro servidor... e, ao meu ver, para fazer esse contador, seria mais fácil criar uma váriavel ou no banco mesmo ou qualquer outro meio de armazenamento para armazenar a data inicial que começou a operar o sistema e outra váriavel ou campo no banco para ir atualizando a data atual... assim, quando alguém precisar ver o valor de contador, você faz a subtração da data inicial que estará "fixada" no banco ou em uma variável com a data que será atualizada diariamente.... bom, se eu entendi, essa é minha idéia... rsrs...
  9. bom dia a todos... estou fazendo uma aplicação onde devo retornar alguns registros independente da rede funcionar ou não, logo, estou usando xml... estou usando 1 clientdataset, 1 adoquery, 1 datasetprovider e 1 datasource... tudo está ligado devidamente em seus lugares e inclusive, funciona perfeito quando tem comunicação com o banco... quando eu simulo uma perda de comunicação, ele não retorna os dados no clientdataset... quando perde a comunicação, eu faço: ClientDataSet1.LoadFromFile('CaminhoDoXML'); e retorna em branco o dbgrid... alguém já passou por isso ai e pode dar uma luz???
  10. bom pessoal, depois de muita labuta, consegui fazer... ficou meio sem lógica rsrsrs, mas deu certo: function Verifica_Status_Rede: boolean; var flag: PDWord; qAux: TADOQuery; begin Result:= true; try qAux:= TADOQuery.Create(nil); dm.ADOConnection1.Connected:= false; dm.ADOConnection1.ConnectionString:= PWideChar('Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+UGeral.banco+';Data Source='+UGeral.servidor+''); try dm.ADOConnection1.Connected:= true; //fazendo uma requisição no banco... poderia ser qualquer tabela, apenas para ver se conecta with qAux, sql do begin close; Connection:= dm.ADOConnection1; clear; add('select CU.Codigo from Cadastro_Usuario CU'); open; end; ShowMessage('conectou'); except Result:= false; end; Finally FreeandNil(qAux); end; como puderam ver, eu fecho a conexão, abro novamente e faço uma requisição... ai, se não tiver rede, ele cai no except.... se eu não colocasse essa requisição ai, uma simples consulta que seja, ele passa como tivesse conectado e da pau no decorrer dos códigos... então, essa requisição é só para ver se está conectado mesmo... se não, vai pro except... está ai minha solução, para quem precisar....
  11. bom dia a todos, estou usando o seguinte código para verificar se a internet está conectada: function Verifica_Status_Rede: boolean; var flag: PDWord; begin if not InternetGetConnectedState(@flag, 0) then Result:= false else Result:= true; end; end; só que, caso eu tenha alguma query ou um clientdataset(estou usando xml) alimentada com dados, ele da a seguinte mensagem: "[DBNETLIB][ConnectionWrite (send()).]Erro geral de rede. Verifique a documentação da rede"... se eu verifico a rede sem ter nenhum dado alimentado já, ele funciona (não estou alimentando dados do bd juntamente com a função, eu alimento os dados antes de verificar se tem rede).... alguém pode ajudar?
  12. descobri como fazer: function Verifica_Status_Rede: boolean; var flag: PDWord; begin if not InternetGetConnectedState(@flag, 0) then begin dm.ADOConnection1.Connected:= false; Result:= false; end else Result:= true; end; antes, declarar a unit Wininet
  13. boa tarde a todos... preciso verificar se há rede disponível entre uma estação e o servidor (sql server)... minha intenção era dar um false e true no ADOConnection e se não conectasse, é porque a rede não está disponível... mas é que não está funcionando... eu tiro o cabo de rede da estação, e faço: dm.ADOConnection.Conected:= false; try dm.ADOConnection.Conected:= true; excpet showmessage('sem rede'); ele retorna um erro: [DBNETLIB][ConnectionWrite (send()).] Erro geral de rede.... e no que da essa mensagem, ele não deixa prosseguir no código, onde mando exibir uma mensagem falando que não há rede disponível e fazer outras coisas.... alguém pode dar uma luz???
  14. bom, imagino eu que você queira montar um cadastro de produtos né... então, quando fosse cadastrar carro, não iria cadastrar o carro propriamente dito, iria cadastrar, rodas, portas, volante e tal... tudo isso, indo para o grupo Carro... caso prefira, detalhe mais ai o que você precise...
  15. olá amigo... isso ocorre pois é um componente externo, não é nativo do delphi... e imagino eu, você não tem esse componente instalado em sua máquina... procure retirar as declarações desse componente no projeto, na library também... ou então instale o componente... espero ter ajudado...
  16. beleza amigo, precisando, estamos ai...
  17. bom dia amigo, leia o post abaixo, as vezes pode te ajudar... http://www.activedelphi.com.br/forum/viewt...4a70308dbfad92b
  18. bom, você pode fazer esse teste if DataSet1.State in [dsEdit, dsInsert] then DataSet1.Post; para saber se está em modo de edição ou inserção ou o que for de ser... eu faço um pouco diferente: eu tenho apenas um botão Salvar. dentro de cada form, tenho uma variavel (achou por exemplo) do tipo boolean... quando quero inserir um novo registro, achou = false e quando quero editar algum registro achou = true... ai, no botão salvar eu faço: if achou = false Insere else Altera;
  19. mas essa impressora é fiscal ou não fiscal?? se for fiscal, até onde eu sei, essa formatação só é permitida em operações não fiscais (relatório gerencial ou cupom vinculado por exemplo)... e é só feita em intervenção técnica...
  20. bom, se eu entendi o que quiser dizer, porque você não cria um Cadastro_Grupo_Produto... assim, você cadastra o grupo Cadeiras, Mesas, Mesas de bar, Cadeiras de praia e por ai vai.... ai, você vincula esse ID_Grupo ao cadastro do produto.... assim, você terá N Produto para 1 Grupo... ou N Produto para N Grupo... ou como você achar que deva ser... ai, num possível relatório, você teria um relatório onde mostra o grupo Cadeiras com suas N cadeiras cadastradas... qualquer coisa, explica melhor ai pra nós... por favor...
  21. tente fazer assim. Tabela.Locate('Campo1;Campo2;Campo3', VarArrayOf(['Valor1', 'Valor2','Valor3']),[]);
  22. mas, que tipo de conexão é a sua, USB ou Serial? detalha mais ai... tenho uma dessa ai e instalei d boa
  23. boa tarde amigo... pois é, eu havia digitado errado... era ArqTemp mesmo, mas já descobri o erro... é que, em uma outra parte do código, eu estava deixando o cArquivo aberto, ai, quando fosse deletar, não dava rsrs.. mas mesmo assim, obrigado pela atenção...
  24. if FileExists(ArqTemp) then begin AssignFile(cArquivo,ArqTemp); Result := true; cConteudo := '000-000 = NCN' + #13 + #10; Reset(cArquivo); while not System.EOF(cArquivo) do begin ReadLn(cArquivo,cLinhaArquivo); cCampoArquivo := copy( cLinhaArquivo, 1, 3 ); case StrToInt( cCampoArquivo ) of 0: pTransacao := copy( cLinhaArquivo, 11, Length( cLinhaArquivo ) - 10 ); 1: cConteudo := cConteudo + cLinhaArquivo + #13 + #10; 3: pValor := copy( cLinhaArquivo, 11, Length( cLinhaArquivo ) - 10 ); 10: begin cConteudo := cConteudo + cLinhaArquivo + #13 + #10; pNomeRede := copy( cLinhaArquivo, 11, Length( cLinhaArquivo ) - 10 ); end; 12: begin cConteudo := cConteudo + cLinhaArquivo + #13 + #10; pNSU := copy( cLinhaArquivo, 11, Length( cLinhaArquivo ) - 10 ); end; 27: cConteudo := cConteudo + cLinhaArquivo + #13 + #10; 999: cConteudo := cConteudo + cLinhaArquivo; end; end; CloseFile(cArquivo); DeleteFile(cArquivo); ai está o pedaço de um código que estou fazendo.... ele não deleta... ai eu vou tentar deletar ele "na mão" mesmo, indo na pasta e deletando, ele fala que está aberto :( ...
  25. também não deu certo amigo... :blink:
×
×
  • Criar Novo...