
MICHELI_MARTINS
Membros-
Total de itens
84 -
Registro em
-
Última visita
Tudo que MICHELI_MARTINS postou
-
(Resolvido) Não foi possível localizar o ponto de entrada do procedime
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
eu instalei um xp novinho tb, não resolveu.... -
Boa tarde. Possuo um sistema em delphi 2010, que roda normalmente em windows 7 e windows vista e em rede. Acontece que preciso coloca-lo em uma maquina com windows xp. Quando peço a execução ocorre esse erro: Não foi possível localizar o ponto de entrada do procedimento com a msvcrt.dll. Tentei substituir a dll no xp por uma mais nova, mas a maquina depois nem entrava o operacional. Tive que voltar a dll antiga. alguém sabe como resolver isso? Meu sistema é banco sql 2005 e uso componentes ado para conexao. Obrigada.
-
deu certo com 4 aspas simples. obrigada.
-
bom dia. tenho um select que funciona perfeitamente no sql 2005, porem quando jogo ele na query no delphi da erro [DCC Error] relatorios.pas(877): E2015 Operator not applicable to this operand type no sql 2005: select distinct substring(convert(char,year(data)),1,4) +'/'+ substring(convert(char,month(data)),1,2) as mesano from orcamentos no delphi sql.Clear; sql.Add(' select distinct substring(convert(char,year(data)),1,4)+'/'+substring(convert(char,month(data)),1,2) as mesano, '); o problema esta no '/' que o delphi não consegue interpretar. como resolvo isso? obrigada.
-
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
Deu certo!!! agora tem como você me explicar a magica? Obrigada viu? -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
p:= 'd:\sample.bmp'; SendMessage(CaptureWindow, WM_CAP_SAVEDIB, 0, longint(pansichar(p))); tb não funcionou. não entendo porque ele interpreta diferente, afinal é o mesmo caminho de SendMessage(CaptureWindow, WM_CAP_SAVEDIB, 0, longint(pansichar('d:\sample.bmp'))); não queria ter que colocar fixo...... -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
operador não se aplica a este tipo de operando longint(PAnsichar(path) + PAnsichar('sample.bmp')) -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
na verdade a linha fica assim: SendMessage(CaptureWindow, WM_CAP_FILE_SAVEDIB, 0, longint(PAnsichar('c:\temp\sample.bmp'))); -- tirei o 1 do final. Aqui ele grava certo, desde que as opçoes de segurança da maquina permitam. o problema (acredito eu) vem do pansichar com o meu path (que é d:\) não sei porque. se eu colocar direto SendMessage(CaptureWindow, WM_CAP_FILE_SAVEDIB, 0, longint(PAnsichar('d:\sample.bmp'))); ele grava agora se eu coloco SendMessage(CaptureWindow, WM_CAP_FILE_SAVEDIB, 0, longint(PAnsichar(path + 'sample.bmp'))); não grava, isso considerando meu path como d:\ é esse o problema so não sei como resolver tanto que esse codigo no 2007 funcionava, mas ao invés de pansichar era so char. -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
incompatible types integer and pwidechar. -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
bom ate onde eu vi não precisa instalar compenente. eu estou usando essa funçao aqui: function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x : integer; y : integer;nWidth : integer;nHeight : integer;ParentWin : HWND; nId : integer): HWND; STDCALL EXTERNAL 'AVICAP32.DLL'; que usa a dll externa avicap32.dll a captura da cam funciona mostra certinho então acho que todas as declarações foram feitas. ela so não esta salvando a imagem em bmp. faço assim: if CaptureWindow <> 0 then exit; CaptureWindow:= capCreateCaptureWindowA('CAPTURA CAM',WS_CHILD or WS_VISIBLE ,panel5.Left,panel5.Top,395,350,panel5.Handle,0); if CaptureWindow <> 0 then begin SendMessage(CaptureWindow, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0); SendMessage(CaptureWindow, WM_CAP_SET_CALLBACK_ERROR, 0, 0); SendMessage(CaptureWindow, WM_CAP_SET_CALLBACK_STATUS, 0, 0); SendMessage(CaptureWindow, WM_CAP_DRIVER_CONNECT, 0, 0); SendMessage(CaptureWindow, WM_CAP_SET_SCALE, 1, 0); SendMessage(CaptureWindow, WM_CAP_SET_PREVIEWRATE, 66, 0); SendMessage(CaptureWindow, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(CaptureWindow, WM_CAP_SET_PREVIEW, 1, 0); até aqui ta ok. problema é aqui: SendMessage(CaptureWindow, WM_CAP_GRAB_FRAME, 0, 0); SendMessage(CaptureWindow, WM_CAP_FILE_SAVEDIB, 0, longint(PAnsichar(path + 'tmp.bmp'))); SendMessage(CaptureWindow, WM_CAP_DRIVER_DISCONNECT, 0, 0); -
(Resolvido) captura de video avicap32.dll
pergunta respondeu ao MICHELI_MARTINS de MICHELI_MARTINS em Delphi, Kylix
tb não grava. mais alguma sugestao? -
boa tarde. pessoal ate então tinha um sistema em delphi 2007 que funcionava certinho. porem passei para delphi 2010 e a captura de video não esta salvando o bmp. o codigo: SendMessage(CaptureWindow, WM_CAP_FILE_SAVEDIB, 0, longint(char(path + 'tmp.bmp'))); o problema é que no delphi 2010 não aceita char acusa erro de invalid typecast, tentei mudar para pchar mas não grava. alguém tem alguma ideia?
-
tem alguma propriedade do checkbox que já traga ele preenchido como N ou terei que inserir isso toda vez que fizer um registro novo?
-
jhonas bom dia. No dbcheckbox no delphi coloquei ValueChecked = S, ValueUnchecked = N, e AllowGrayed =False. E no banco sql server mudei o campo pago1 para char (1). é isso mesmo? ainda esta trazendo sombreado.
-
ola jhonas. o problema é que este campo na tabela esta de fato vazio. e ele não esta trazendo ticado. é como se fosse assim: ticado = true não ticado = false sombreado = null entende? so que esse "null" com esse V no checkbox sombreado causa distorção pro usuario final que "acha" que a conta foi paga só porque o campo esta marcando este sombreamento. eu quero tirar esse sombreamento.
-
boa tarde pessoal. tenho um aplicativo meu rodando tudo ok. quando clico para abertura de tela, os dbcheckboxes estao brancos desmarcados que no caso não trazem nada. o problema é quando abro a tabela, automaticamente o dbcheckbox muda para um v sombreado, apesar de não estar ticado, (pois o ticado fica negrito) gostaria de remover isso e deixar o branco normal. alguém sabe como tirar isso?
-
não fulvio, ainda não deu. com esse select ele conta apenas um primeiro emplacamento e uma renovação licença entre os dias 3 e 4. nesses dois dias foram uma renovaçao licença e 3 primeiros emplacamentos. select count(s.servico), s.codigo from servicos s where s.codigo in (select it.grupo from itensorcamento it, orcamentos o where o.numero = it.codigoref and it.grupo=s.codigo AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-03' AND '2010-03-04') group by s.servico, s.codigo order by servico codigo ----------- -------------------- 1 1 1 9 preciso que apareça assim: codigo ----------- -------------------- 3 1 1 9 o que melhor se assemelha ao que eu preciso é esse select aqui: SELECT S.SERVICO, S.CODIGO FROM ITENSORCAMENTO I, ORCAMENTOS OS, SERVICOS S WHERE (I.CODIGOREF) = (OS.NUMERO) AND S.CODIGO = I.GRUPO AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-03' AND '2010-03-04' GROUP BY I.CODIGOREF,S.SERVICO,S.CODIGO SERVICO CODIGO ---------------------------------------- -------------------- RENOVAÇÃO DA LICENÇA 9 PRIMEIRO EMPLACAMENTO 1 PRIMEIRO EMPLACAMENTO 1 PRIMEIRO EMPLACAMENTO 1 entre esses dias são 4 orcamentos, so que preciso que ele coloque desse jeito: SERVICO CODIGO total ---------------------------------------- -------------------- RENOVAÇÃO DA LICENÇA 9 1 PRIMEIRO EMPLACAMENTO 1 3
-
Fulvio, eu rodei os dois scripts. Na verdade esta contando como se fosse os subitens e não o serviço em si. eu preciso que ele conte para cada orçamento o serviço e não os subitens dele. select count (s.servico), s.codigo from servicos s, itensorcamento i where s.codigo = i.grupo and i.codigoref = (select top 1 it.codigoref from orcamentos orc, itensorcamento it where orc.numero = it.codigoref and it.grupo=s.codigo AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-04' AND '2010-03-04') group by s.servico, s.codigo order by servico codigo ----------- -------------------- 10 1 (1 row(s) affected) neste dia especifico entrou so um primeiro emplacamento que possui 10 subitens na itensorcamento referenciando o grupo 1 (serviços) entendeu? preciso que ele conte apenas o numero de serviços, porque na verdade so tem um orçamento com um primeiro emplacamento, com 10 subitens do primeiro emplacamento. teria que estar fazendo assim: select (s.servico), s.codigo from servicos s, itensorcamento i where s.codigo = i.grupo and i.codigoref = (select top 1 it.codigoref from orcamentos orc, itensorcamento it where orc.numero = it.codigoref and it.grupo=s.codigo AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-04' AND '2010-03-04') group by s.servico, s.codigo,i.codigoref order by servico servico codigo ---------------------------------------- -------------------- PRIMEIRO EMPLACAMENTO 1 so que se eu coloco o count no serviço ele me retorna 10 ao invés de 1.
-
fulvio o primeiro select nem traz resultado, select s.servico, s.codigo from servicos s, itensorcamento i,ORCAMENTOS OS where s.codigo = i.grupo AND OS.NUMERO = I.CODIGOREF AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-03' AND '2010-03-04' and i.codigoref = (select top 1 it.codigoref from orcamentos orc,itensorcamento it where orc.numero = it.codigoref and it.grupo=s.codigo) order by servico o segundo traz mas continua trazendo uma totalização de itens de orcamento quando na verdade quero só o servico, é como se ele contasse o grupo em 10 serviços (por exemplo) para um mesmo orcamento. select COUNT(s.servico), s.codigo from servicos s, itensorcamento i,ORCAMENTOS OS where s.codigo = i.grupo AND OS.NUMERO = I.CODIGOREF AND CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN '2010-03-03' AND '2010-03-04' and i.codigoref in (select it.codigoref from orcamentos orc,itensorcamento it where orc.numero = it.codigoref and it.grupo=s.codigo) GROUP BY S.SERVICO,s.codigo order by servico nesse select, para o servico de codigo 1 esta trazendo 30 quando era pra trazer 3, e para o de codigo 9 esta trazendo 12 (que são seus 12 subitens), quando na verdade so existe um orçamento pra ele.
-
o problema não é fazer o count. ate ai eu consigo fazer porem as tabelas estao alinhadas assim: os.numero i.codigoref s.servico uma ordem de servico possui varios itens de orcamento que pertencem ao grupo x so que no caso eu preciso para cada ordem de servico contar apenas uma vez o servico e não todas as vezes que ele aparecer na itens de orcamento se eu fizer o count direto ao invés de 3 primeiros emplacamentos ele vai me jogar 10 primeiros emplacamentos por causa da itens de orcamento (cada servico, no caso primeiro emplacamento possui varios subitens necessarios). precisaria de algo como o distinct que conta apenas uma vez... não sei se consegui te passar o problema..
-
gente boa tarde. estou com uma duvida aqui... é o seguinte tenho um script de sql assim: select (s.servico), s.codigo from servicos s, itensorcamento i, orcamentos os where s.codigo = i.grupo and os.numero = i.codigoref and cast(floor(cast(data as float)) as datetime) between '2010-03-03' and '2010-03-04' group by s.servico, s.codigo, os.numero order by servico que me retorna no banco: servico codigo primeiro emplacamento 1 primeiro emplacamento 1 primeiro emplacamento 1 renovaçao licenca 9 acontece que eu queria contar os tipos de servico por exemplo no caso do primeiro emplacamento seriam 3 e na renovacao licença seria 1 como faço isso?
-
gente bom dia. estou há uma semana tentando achar uma solução para o meu problema porem ainda não consegui. tenho um relatorio que mostra os dados de clientes agrupados por loja (uma banda grupo, uma detalhe) com a seguinte query : SELECT LOJA,DATA,NUMERO,PLACA,CLIENTE,VALORCONTRATADO,VALORSERVICOS,ADIANTAMENTO1, ADIANTAMENTO2,ADIANTAMENTO3,TOTALGERAL,HONORARIOS FROM ORCAMENTOS WHERE CAST(FLOOR(CAST(DATA AS float)) AS datetime) BETWEEN :DATAINICIAL AND :DATAFINAL AND (PRONTO <> 'TRUE' OR PRONTO IS NULL) AND (LOJA = :LOJA or :LOJA = '') GROUP BY LOJA,DATA,NUMERO,PLACA,CLIENTE,VALORCONTRATADO,VALORSERVICOS,ADIANTAMENTO1, ADIANTAMENTO2,ADIANTAMENTO3,TOTALGERAL,HONORARIOS ORDER BY LOJA e preciso montar uma outra query que no caso mostraria uma totalizaçao de serviços feitos ( não valores, mas sim quantidades de cada serviço que foi feito naquele mes). esta segunda query ficou assim: SELECT COUNT(S.CODIGO) AS QUANTIDADE, S.SERVICO FROM SERVICOS S, ITENSORCAMENTO O, ORCAMENTOS OS WHERE S.CODIGO = O.GRUPO AND O.CODIGOREF = OS.NUMERO AND (PRONTO <> 'TRUE' OR PRONTO IS NULL) AND (LOJA = :LOJA or :LOJA = '') AND OS.NUMERO = :NUMERO GROUP BY SERVICO ORDER BY SERVICO no sql server ela mostra certinho o total de serviços agrupados, porem o problema esta sendo juntar as duas no quick, uma vez que são independentes. se no caso eu montasse o relatorio com apenas esta ultima ele apareceria normal como no sql, já que a propriedade do quickrep1 estaria apontando para tabela servicos. o problema está no quickprep1 porque ele tem que apontar para a tabela central orcamentos e quando eu faço isso não consigo uma totalização de quantidades de serviços, e sim uma subdetalhe de cada orçamento printado. o que eu preciso é que ele mostre todos os orçamentos e no final do relatorio me diga quantidade de serviço e nome do serviço para cada tipo de serviço prestado. existe algum jeito de fazer isto?
-
bom dia pessoal. estou com essa mensagem de erro quando dou um ok em um botao que faz o post da gravação no banco sql. porem não estou conseguindo localizar o erro. eu ate entendo que ele esta pedindo um insert ou um edit antes de dar o post. so que mesmo fazendo o debug a aplicação para em cima do post e não me deixa localizar onde esta o erro. alguém sabe como eu posso fazer o debug localizar isso pra mim? segue um pedaço do codigo do botao ok: begin IF APPLICATION.MessageBox('CONFIRMA A INCLUSÃO OU A ' + 'ALTERAÇÃO DESTE REGISTRO? ', 'CONFIRMAÇÃO', MB_YESNO + MB_ICONINFORMATION) = IDYES THEN BEGIN TABELANUMEROS.SQL.Clear; TABELANUMEROS.SQL.ADD('UPDATE NUMEROS SET USADO =:USADO WHERE NUMERO =:NUMERO AND USUARIO =:USUARIO'); TABELANUMEROS.ParamByName('USUARIO').ASSTRING:= DBUSUARIO.Text; TABELANUMEROS.PARAMBYNAME('NUMERO').ASSTRING:= DBNUMERO.TEXT; TABELANUMEROS.PARAMBYNAME('USADO').ASSTRING:= 'SIM'; TABELANUMEROS.ExecSQL; TBLORCAMENTOS.FieldByName('NUMERO').ASSTRING:= DBNUMERO.TEXT; if DBPRONTO.Checked = True then begin LABELDOCUMENTOPRONTO.Caption:= 'DOCUMENTO PRONTO DIA: ' + DBDATAPRONTO.FIELD.TEXT; end; TBLORCAMENTOS.POST; LABELDOCUMENTOPAGO.Visible:= FALSE; LABELDOCUMENTOPRONTO.VISIBLE:= FALSE; BTNFECHAR.Enabled:= TRUE; END ELSE TBLORCAMENTOS.Cancel; TABELALOJA.SQL.CLEAR; TABELALOJA.SQL.ADD('SELECT * FROM LOJAS'); TABELALOJA.ExecSQL; TABELALOJA.Open; while NOT TABELALOJA.Eof do BEGIN DBLOJA.Items.ADD(TABELALOJA.FIELDBYNAME('LOJA').ASSTRING); TABELALOJA.Next; END; FORMORCAMENTOS.FormActivate(SELF); TABELAORCAMENTOS.Close; TABELAORCAMENTOS.Open; DBOBSERVACOES.ReadOnly:= TRUE; end; anteriormente a esse codigo eu tenho o incluir que esta assim: PROCEDURE TFORMORCAMENTOS.BTNINCLUIRClick(Sender: TObject); begin TBLORCAMENTOS.OPEN; TABELAORCAMENTOS.SQL.CLEAR; TABELAORCAMENTOS.SQL.Add('SELECT * FROM ORCAMENTOS WHERE CODIGO IN (SELECT MAX(CODIGO)AS CODIGO FROM ORCAMENTOS)ORDER BY CODIGO DESC'); TBLORCAMENTOS.APPEND; TBLORCAMENTOS.ClearFields; DBCODIGO.TEXT :=INTtOSTR(TABELAORCAMENTOS.FIELDBYNAME('CODIGO').ASINTEGER + 1); DBDATA.TEXT:=DATA; FORMORCAMENTOS.FormActivate(SELF); WITH FORMORCAMENTOS DO BEGIN DBNUMERO.ENABLED:= TRUE; CAPTION:= 'INCLUSÃO DE REGISTRO' ; BTNEDITAR.ENABLED:= FALSE; BTNEXCLUIR.ENABLED:= FALSE; BTNINCLUIR.ENABLED:=FALSE; BTNFECHAR.ENABLED:= FALSE; DBOBSERVACOES.ReadOnly:= FALSE; END; DBNUMERO.SetFocus; LABELDOCUMENTOPAGO.Visible:= FALSE; DBPRONTO.CHECKED:= FALSE; DBPAGO1.CHECKED:=FALSE; DBPAGO2.CHECKED:=FALSE; DBPAGO3.CHECKED:=FALSE; TABELAITENSORCAMENTO.SQL.CLEAR; TABELAITENSORCAMENTO.SQL.ADD('SELECT * FROM ITENSORCAMENTO WHERE CODIGOREF =:CODIGOREF ORDER BY CODIGOITENS ASC'); TABELAITENSORCAMENTO.ParamByName('CODIGOREF').ASSTRING:= DBNUMERO.TEXT; TABELAITENSORCAMENTO.EXECSQL; TABELAITENSORCAMENTO.OPEN; ORCEXCLUSAO:= DBNUMERO.TEXT; DBOBSERVACOES.Text:= TABELADATA.FieldByName('DATA').ASSTRING; end;
-
(Resolvido) Alterar componente
pergunta respondeu ao Douglas Soares de MICHELI_MARTINS em Delphi, Kylix
obrigado, ms meu quick aqui é 4.0 nem adintaria....ms valeu -
(Resolvido) Alterar componente
pergunta respondeu ao Douglas Soares de MICHELI_MARTINS em Delphi, Kylix
douglas essa procedure pede eventhandled undeclared identifier. o que fazer?