
Daniel Sanches
Membros-
Total de itens
126 -
Registro em
-
Última visita
Tudo que Daniel Sanches postou
-
if fileexists('C:\NOME_DO_ARQUIVO.BAT') then showmessage('Arquivo existe.') else showmessage('Arquivo não existe.'); abraços !!
-
tenho um Form e neste Form tenho um componente TWebBrowser... o problema: se coloco um evento OnKeyDown, OnKeyPress ou OnKeyUp, onde se o usuário pressionar a tecla "ESC" feche o Form, funciona perfeitamente, porém, se o usuário clicar no componente TWebBrowser (tirando o foco do Form), o evento não funciona mais... Obs: a propriedade KeyPreview do Form = True... preciso da checagem da tecla, onde o foco estiver ... o TWebBrowser não tem os eventos OnKey... abraços !!!
-
Como criar um Array para percorrer um componente de Texto (DBRichEdit)
pergunta respondeu ao Ricardo Aurélio Schnaider de Daniel Sanches em Delphi, Kylix
se eu entendi bem o que você quer é mais simples do que você pensa ... RichEdit1.Text:= AnsiReplaceStr(RichEdit1.Text,'texto a substituir','texto substituto'); só não se esqueça de declarar StrUtils na cláusula uses... abraços !! -
os seus DBEdits e o DBGrid estão ligados no mesmo DataSource ???? se estiverem, o DBGrid exibe sim todas alterações feitas nos campos da Tabela, ele só não coloca na ordem correta atualizada, apenas quando fechamos e abrimos novamente a query .... tente verificar esta conexão de DataSource... abraços !!!
-
é um código de erro de entrada duplicada ... tente verificar se não há nenhum registro com a mesma chave já cadastrada ... abraços !!
-
olá !!! pra você controlar o tempo no seu programa, utilize o componente TTimer... quanto a simulação do pressionamento de teclas, eu encontrei esse código na net, porém, não tive tempo de testar .... unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); { Parâmetros: * key : código virtual da tecla a ser enviada. Para teclas que possuem caracteres este será o código ANSI (Ord(character)) . * shift : estado das teclas de modificação. É um conjunto, de modo que você pode especificar várias teclas (shift, control, alt, botões do mouse) todas juntas. O tipo TShiftState é declarado na unit Classes. * specialkey: normalmente este valor deve ser False. Defina-o como True para especificar uma tecla no teclado numérico. } type TShiftKeyInfo = record shift: Byte; vkey: Byte; end; ByteSet = set of 0..7; const shiftkeys: array [1..3] of TShiftKeyInfo = ((shift: Ord(ssCtrl); vkey: VK_CONTROL), (shift: Ord(ssShift); vkey: VK_SHIFT), (shift: Ord(ssAlt); vkey: VK_MENU)); var flag: DWORD; bShift: ByteSet absolute shift; j: Integer; begin for j := 1 to 3 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), 0, 0); end; if specialkey then flag := KEYEVENTF_EXTENDEDKEY else flag := 0; keybd_event(key, MapvirtualKey(key, 0), flag, 0); flag := flag or KEYEVENTF_KEYUP; keybd_event(key, MapvirtualKey(key, 0), flag, 0); for j := 3 downto 1 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), KEYEVENTF_KEYUP, 0); end; end; procedure TForm1.Button1Click(Sender: TObject); begin // Simula PRINTSCREEN - snapshot da tela inteira //PostKeyEx32(VK_SNAPSHOT, [], False); // Simula PRINTSCREEN - snapshot da janela ativa //PostKeyEx32(VK_SNAPSHOT, [ssAlt], False); // Simula a tecla Windows da esquerda //PostKeyEx32(VK_LWIN, [], False); // Simula Alt+F4 - fecha a janela ativa PostKeyEx32(VK_F4, [ssAlt], False); end; end. testa o código aí, depois fala se deu certo ... abraços !!!
-
obrigado pelas dicas !!! encontrei bastante material a respeito, agora é só estudar... abraços !!!
-
olá jonas !!! obrigado pela resposta !! encontrei alguns artigos legais sobre a autenticação e envio da NF-e, porém, o mais básico de tudo, que é gerar o arquivo .XML não encontrei... quanto a manipulação de texto e arquivo tiro de letra, o problema é que não consigo encontrar o padrão de como montar o arquivo... aguardo novas respostas... abraços !!!
-
alguém tem algum tutorial para NF-e ??? preciso fazer a interação do meu sistema com a NF-e, porém, estou tentando saber por onde começar !! heheheeh aguardo respostas !! abraço !!!
-
(Resolvido) Como saber se e ano bissexto
pergunta respondeu ao Alessandra (Jundiai) de Daniel Sanches em Delphi, Kylix
declare a unit DateUtils na cláusula uses ... if DaysInYear('01/01/1996') = 366 then showmessage('Sim') else showmessage('Não'); abraços !!! -
select day(data_inclusao) from TESTE abraços !!
-
no mySQL por exemplo, com a instrução: select day(curdate()) me retorna o dia da data atual ... pelo delphi, você pode utilizar a função: dayof(date) ... //não se esqueça de declarar a unit DateUtils em uses ... abraços !!
-
Problemas com quantidade de Caracteres
pergunta respondeu ao Deivid Luz de Daniel Sanches em Delphi, Kylix
faça um teste ... se o seu testo não precisa de formatação, então o DBMemo é mais indicado ... não sei a quantidade máxima de caracteres de um Memo, só sei que ele salva no máximo 255 caracteres e o restante em um arquivo auxiliar ... só não sei o tamanho limite de arquivo !! abraços !! -
Problemas com quantidade de Caracteres
pergunta respondeu ao Deivid Luz de Daniel Sanches em Delphi, Kylix
olá !!! amigo, pelo jeito o problema você resolveu !! você mesmo disse que o problema está na conexão ... sinceramente, a conexão BDE deveria ser utilizada para sistemas menores (mesmo assim talvez), pois existem componentes melhores ... talvez, em um sistema grande, a atualização possa ser um pouco demorada e chata de se fazer, porém, com certeza, evitará problemas futuros ... abraços !! -
sim, é dessa forma sim ... eu fiz algo parecido... a única coisa é que coloquei um ComboBox ao invés de DBComboBox ... estou vendo se consigo fazer um componente herdado de ComboBox ou até mesmo DBComboBox para fazer isso automaticamente, sendo que ao listar os dados ele lista completo e ao retornar, retorno parcial ... vlw a dica !! abraços !!!
-
certifique-se de que você não esteja tentando colocar um valor no campo autoincremento na hora de salvar ....tipo: insert into TABLE (CODIGO,NOME) values(1,'TESTE') neste caso você teria problemas ao tentar colocar o valor 1 em um campo autoincremento ... abraços !!!
-
é exatamente aí que precisa ser alterado conforme postei anteriormente ... quando você fizer o procedimento, post novamente ...se deu erro, post o erro ... abraço !!
-
resgistros são listado em um DBGrid
pergunta respondeu ao Livio Neiva de Daniel Sanches em Delphi, Kylix
qual componente você está usando ??? é uma TQuery ??? SqlQuery ?? -
pois então, ao invés de utilizar: select * from pagamento utilize: select PAGAMENTO.*, FORNECEDOR.NOME as "FORNEC_NOME" from PAGAMENTO, FORNECEDOR where FORNECEDOR.ID = PAGAMENTO.ID_FORNEC onde : FORNECEDOR é o nome da tabela de fornecedores... FORNECEDOR.ID é a chave da tabela de fornecedores PAGAMENTO.ID_FORNEC é a chave estrangeira na tabela de pagamento é só você adaptar os nomes conforme estão os nomes da sua tabela ... assim, na consulta da sua query, aparecerá o campo FORNEC_NOME com o nome do fornecedor retirado do cadastro de fornecedores... abraço !!!
-
ok !!! qual o comando SQL que você está usando para carregar os dados usados em QueryToEdits ??? se não me engano você está utilizando o componente F_DMExpress.Cds_Pagamento ... qual código SQL está utilizando ??
-
uma idéia ... você poderia fazer uma checagem de tempos em tempos na aplicação Client e verificar um campo em uma tabela do banco de dados onde, dependendo da informação, ordene que ela termine ... qualquer coisa post novamente ... abraço !!!
-
depente do que você deseja que o seu sistema faça ... você pode colocar em um Click de um Botão, no abrir de um Form .. onde quiser ... especifique melhor o que deseja, para poder ajudar ... abraço !!
-
resgistros são listado em um DBGrid
pergunta respondeu ao Livio Neiva de Daniel Sanches em Delphi, Kylix
para 15 dias atrás .... F_DMEXpress.Q_Pagamento.Active := False; F_DMEXpress.Q_Pagamento.SQL.Clear; F_DMExpress.Q_Pagamento.SQL.Add('SELECT * FROM PAGAMENTO'); F_DMExpress.Q_Pagamento.SQL.Add('WHERE VENCIMENTO BETWEEN :PDATA1 and :PDATA2'); F_DMExpress.Q_Pagamento.SQL.Parambyname('PDATA1').value:= date-15; F_DMExpress.Q_Pagamento.SQL.Parambyname('PDATA1').value:= date; F_DMEXpress.Q_Pagamento.Active := True; para 15 dias à frente, é só trocar o "date-15" por "date+15"... abraço !! -
você coloca essa consulta no SQLQUERY a hora que você quiser, em tempo de execução também ... sqlQuery1.SQL.Text:= 'SELECT pagamento.codforn, fornecedor.Nome from pagamento,fornecedor where pagamento.codforn=fornecedor.Codigo'; você abrindo a query, já terá o nome do fornecedor no resultado ...
-
exatamente ...