
robinhocne
Membros-
Total de itens
854 -
Registro em
-
Última visita
Tudo que robinhocne postou
-
Pessoal to precisando de uma ajuda..... Eu adiciono dos FieldDefs em uma tabela temporaria de acordo com o meu layout..isso então vai mudar várias vezes....eu adiciono dessa maneira: //Adiciona os campos do layout NCC.......................... TblConv.FieldDefs.Add('DT_PROCESSAMENTO',ftDateTime,0,False); TblConv.FieldDefs.Add('Cpf_Cnpj',ftString,14,False); TblConv.FieldDefs.Add('Conta',ftString,14,False); TblConv.FieldDefs.Add('CartaoPossuidor',ftString,2,False); TblConv.FieldDefs.Add('CartaoVersao',ftString,2,False); TblConv.FieldDefs.Add('DataInclusao',ftString,8,False); TblConv.FieldDefs.Add('DataDesbloqueio',ftString,8,False); TblConv.FieldDefs.Add('SituacaoCartao',ftString,2,False); TblConv.FieldDefs.Add('DataCancelamento',ftString,8,False); TblConv.FieldDefs.Add('SituacaoEmbossing',ftString,2,False); TblConv.FieldDefs.Add('SituacaoEntrega',ftString,2,False); //..........................Adiciona os campos do layout NCC Como eu excluo os fieldDefs para incluir ourtos ?
-
Volto no ponto da criação de componente, Queria criar um Edit para todos os tipos de campos, porém não vou utilizar com ligação a uma tabela do banco. Como faço para criar uma propriedade nesse componente chamado: >Tipo de Campo (esse tipo de campo deverá conter uma caixa de seleção onde irei selecionar se ele recebe integer, float, string, date, time ou intstr) Quando selecionar a propriedade integer, ele só pode aceitar numeros. Quanto selecionar a propriedade float ele só deve aceitar valores com decimais, ai diante dessa propriedade precisarei de um campo para mascara desse campo e quantidade de casas decimais. Quando for string só aceitar letras. Quando for date só aceitar tipo data e jogar automaticamente o formato de data. Quando for date só aceitar tipo hora e jogar automaticamente o formato de hora. Quanto for IntStr poder aceitar numeros e letras. Como eu posso fazer isso ? Hoje tenho o componente TTexto criado onde herda do TEdit, segue abaixo.... unit Texto; interface uses SysUtils, Classes, Controls, StdCtrls, Graphics, Messages; type TTexto = class(TEdit) private OnEnterColor: TColor; OnExitColor: TColor; procedure ExportaColor(const Value: TColor); procedure ImportaColor(const Value: TColor); protected procedure ColocaCor(Sender: TObject); procedure RetiraCor(Sender: TObject); procedure ImportaCor(Value: TColor); procedure ExportaCor(Value: TColor); public constructor Create(Aowner: TComponent); override; procedure CMEnter(var Msg: TMessage); message CM_ENTER; procedure CMExit(var Msg: TMessage); message CM_EXIT; published property CorOnEnter: TColor read OnEnterColor write ImportaColor; property CorOnExit: TColor read OnExitColor write ExportaColor; property AutoSize; end; procedure Register; implementation procedure Register; begin RegisterComponents('Comps', [TTexto]); end; { TTexto } procedure TTexto.CMEnter(var Msg: TMessage); begin ColocaCor(Self); inherited end; procedure TTexto.CMExit(var Msg: TMessage); begin RetiraCor(Self); inherited end; procedure TTexto.ColocaCor(Sender: TObject); begin if Sender is TEdit then TEdit(Sender).Color := OnEnterColor; end; constructor TTexto.Create(Aowner: TComponent); begin inherited; OnEnterColor := clSkyBlue; OnExitColor := clWindow; OnEnter := ColocaCor; OnExit := RetiraCor; AutoSize := false; Height := 20; end; procedure TTexto.ExportaColor(const Value: TColor); begin end; procedure TTexto.ExportaCor(Value: TColor); begin OnExitColor := Value; end; procedure TTexto.ImportaColor(const Value: TColor); begin end; procedure TTexto.ImportaCor(Value: TColor); begin OnEnterColor := Value; end; procedure TTexto.RetiraCor(Sender: TObject); begin if Sender is TEdit then TEdit(Sender).Color := OnExitColor; end; end.
-
(Resolvido) Implementar código no OnExit do componente
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Ok, Jhonas muito obrigado. -
(Resolvido) Implementar código no OnExit do componente
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Hum....valeu Jhonas, mas uma pergunta porque como Date ele não traz a data ? -
(Resolvido) Implementar código no OnExit do componente
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
mas porque o Date não recebe a data atual ? -
(Resolvido) Implementar código no OnExit do componente
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
opa valeu Jhonas tá quase....consegui fazer tudo...conforme abaixo: unit Data; interface uses SysUtils, Classes, Controls, StdCtrls, Mask, ToolEdit, Graphics, Messages, DateUtils; type TData = class(TDateEdit) private OnEnterColor: TColor; OnExitColor: TColor; procedure ExportaColor(const Value: TColor); procedure ImportaColor(const Value: TColor); protected procedure ColocaCor(Sender: TObject); procedure RetiraCor(Sender: TObject); procedure ImportaCor(Value: TColor); procedure ExportaCor(Value: TColor); procedure CompletaData(TData: TDateEdit); Function TiraMascara (Valor : String) : String; public constructor Create(Aowner: TComponent); override; procedure CMEnter(var Msg: TMessage); message CM_ENTER; procedure CMExit(var Msg: TMessage); message CM_EXIT; published property CorOnEnter: TColor read OnEnterColor write ImportaColor; property CorOnExit: TColor read OnExitColor write ExportaColor; end; procedure Register; implementation procedure Register; begin RegisterComponents('Innovation', [TData]); end; { TData } procedure TData.CMEnter(var Msg: TMessage); begin ColocaCor(Self); inherited end; procedure TData.CMExit(var Msg: TMessage); begin RetiraCor(Self); CompletaData(Self); inherited end; procedure TData.ColocaCor(Sender: TObject); begin if Sender is TDateEdit then TDateEdit(Sender).Color := OnEnterColor; end; procedure TData.CompletaData(TData: TDateEdit); var Dt, CarcDt : String; // CarcDt : Integer; begin Dt := ''; if TData.Text <> ' / / ' then begin Dt := Trim(TiraMascara(TData.Text)); CarcDt := IntToStr(Length(Dt)); if CarcDt = '2' then begin Dt:= Dt+ FormatDateTime('/mm/yyyy',Date); TData.Text := Dt; end else if CarcDt = '4' then begin Dt:= copy(Dt,1,2) + '/' + copy(Dt,3,2) + FormatDateTime('/yyyy',Date); TData.Text := Dt; end; end; end; constructor TData.Create(Aowner: TComponent); begin inherited; OnEnterColor := clSkyBlue; OnExitColor := clWindow; OnEnter := ColocaCor; OnExit := RetiraCor; end; procedure TData.ExportaColor(const Value: TColor); begin end; procedure TData.ExportaCor(Value: TColor); begin OnExitColor := Value; end; procedure TData.ImportaColor(const Value: TColor); begin end; procedure TData.ImportaCor(Value: TColor); begin OnEnterColor := Value; end; procedure TData.RetiraCor(Sender: TObject); begin if Sender is TDateEdit then TDateEdit(Sender).Color := OnExitColor; end; function TData.TiraMascara(Valor: String): String; Var NovoValor : String; i : Integer; begin NovoValor := ''; For i := 1 To Length (Valor) Do begin If ((Valor [i] = '.') Or (Valor [i] = ',') Or (Valor [i] = '-') Or (Valor [i] = '/') Or (Valor [i] = '(') Or (Valor [i] = ')') ) Then Continue; NovoValor := NovoValor + Valor [i]; end; Result := NovoValor; end; end. mas quando eu informo por exemplo dia 11 ao sair data ele deveria preencher com o mes e ano corrente no caso ficaria assim : 11/04/2012, mas ao passar no Date não está pegando a data atual: procedure TData.CompletaData(TData: TDateEdit); var Dt, CarcDt : String; begin Dt := ''; if TData.Text <> ' / / ' then begin Dt := Trim(TiraMascara(TData.Text)); CarcDt := IntToStr(Length(Dt)); if CarcDt = '2' then begin Dt:= Dt+ FormatDateTime('/mm/yyyy',Date); //pega o mes e ano da data atual TData.Text := Dt; end else if CarcDt = '4' then begin Dt:= copy(Dt,1,2) + '/' + copy(Dt,3,2) + FormatDateTime('/yyyy',Date);//pega o ano da data atual TData.Text := Dt; end; end; end; Quando passa aqui No Date está vindo 0, ai acaba jogando a data assim : 11/12/1899 o que poder ser ? -
(Resolvido) Implementar código no OnExit do componente
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
tem como fazer isso ? -
Eu coloquei assim: procedure TFrmFluxoCaixa.DbfFinCalculate(Sender: TJvDBGridFooter; const FieldName: String; var CalcValue: Variant); var Y, Year: Integer; begin with TblFin do begin if TblFin.Active then begin for Y := 0 to TblFin.RecordCount - 1 do begin if(AnsiSameText(FieldName, 'Vl_Dinheiro')) then begin FinDin := FinDin + TblFin.FieldByName('Vl_Dinheiro').AsCurrency; CalcValue := FinDin; DbfFin.Columns.Items[0].DisplayMask := FloatToStrF(FinDin, ffNumber, 15,2); end; end; end; end; end; mas o valor que dá é muito alto....pois eu veja na imagem abaixo...
-
Estou fazendo assim: while not TblFin.Eof do begin if TblFinVl_Dinheiro.AsCurrency > 0 then begin if(AnsiSameText(FieldName, 'Vl_Dinheiro')) then begin FinDin := FinDin + TblFinVl_Dinheiro.AsCurrency; CalcValue := FinDin; DbfFin.Columns.Items[0].DisplayMask := FloatToStrF(FinDin, ffNumber, 15,2); end; end; TblFin.Next; end; while not TblFin.Eof do begin if TblFinVl_Cheque.AsCurrency > 0 then begin if(AnsiSameText(FieldName, 'Vl_Cheque')) then begin FinChe := FinChe + TblFinVl_Cheque.AsCurrency; CalcValue := FinChe; DbfFin.Columns.Items[1].DisplayMask := FloatToStrF(FinChe, ffNumber, 15,2); end; end; TblFin.Next; end; mas a coluna do Vl_Cheque não aparece nada
-
Pessoal eu tenho esse componente abaixo que criei do TDateEdit do RxLib, só para implementar a cor, agora estava querendo implementar no Evento onExit dele o preenchimento de data Automatica....atualmente eu faço assim no OnExit no componente quando está no form: procedure TFrmConsultaVenda.TxtDtIniExit(Sender: TObject); var CarDt : Integer; Data : String; begin if TxtDtIni.Text <> ' / / ' then begin Data := Trim(TiraMascara(TxtDtIni.Text)); CarDt := Length(Data); if Length(Trim(TiraMascara(TxtDtIni.Text))) = 2 then begin Data := Data + FormatDateTime('/mm/yyyy',Date); TxtDtIni.Text := Data; end else if Length(Trim(TiraMascara(TxtDtIni.Text))) = 4 then begin Data := Data + FormatDateTime('/yyyy',Date); TxtDtIni.Text := Data; end; end; end; Abaixo o componente que criei. unit Data; interface uses SysUtils, Classes, Controls, StdCtrls, Mask, ToolEdit, Graphics, Messages; type TData = class(TDateEdit) private OnEnterColor: TColor; OnExitColor: TColor; procedure ExportaColor(const Value: TColor); procedure ImportaColor(const Value: TColor); protected procedure ColocaCor(Sender: TObject); procedure RetiraCor(Sender: TObject); procedure ImportaCor(Value: TColor); procedure ExportaCor(Value: TColor); public constructor Create(Aowner: TComponent); override; procedure CMEnter(var Msg: TMessage); message CM_ENTER; procedure CMExit(var Msg: TMessage); message CM_EXIT; published property CorOnEnter: TColor read OnEnterColor write ImportaColor; property CorOnExit: TColor read OnExitColor write ExportaColor; end; procedure Register; implementation procedure Register; begin RegisterComponents('CompsProprios', [TData]); end; { TData } procedure TData.CMEnter(var Msg: TMessage); begin ColocaCor(Self); inherited end; procedure TData.CMExit(var Msg: TMessage); begin RetiraCor(Self); inherited end; procedure TData.ColocaCor(Sender: TObject); begin if Sender is TDateEdit then TDateEdit(Sender).Color := OnEnterColor; end; constructor TData.Create(Aowner: TComponent); begin inherited; OnEnterColor := clSkyBlue; OnExitColor := clWindow; OnEnter := ColocaCor; OnExit := RetiraCor; end; procedure TData.ExportaColor(const Value: TColor); begin end; procedure TData.ExportaCor(Value: TColor); begin OnExitColor := Value; end; procedure TData.ImportaColor(const Value: TColor); begin end; procedure TData.ImportaCor(Value: TColor); begin OnEnterColor := Value; end; procedure TData.RetiraCor(Sender: TObject); begin if Sender is TDateEdit then TDateEdit(Sender).Color := OnExitColor; end; end.
-
mesmo colocando um loop....se eu percorrer linha a linha do grid o valor fica loco....e para todos....fica o mesmo....
-
Fiz assim... procedure TFrmFluxoCaixa.DbfFinCalculate(Sender: TJvDBGridFooter; const FieldName: String; var CalcValue: Variant); begin if(AnsiSameText(FieldName, 'Vl_Dinheiro')) then begin FinDin := FinDin + TblFinVl_Dinheiro.AsFloat; CalcValue := FinDin; DbfFin.Columns.Items[0].DisplayMask := FloatToStrF(CalcValue, ffNumber, 15,2); end; if(AnsiSameText(FieldName, 'Vl_Cheque')) then begin FinChe := FinChe + TblFinVl_Dinheiro.AsFloat; CalcValue := FinChe; DbfFin.Columns.Items[1].DisplayMask := FloatToStrF(CalcValue, ffNumber, 15,2); end; if(AnsiSameText(FieldName, 'Vl_Conta')) then begin FinCon := FinCon + TblFinVl_Dinheiro.AsFloat; CalcValue := FinCon; DbfFin.Columns.Items[2].DisplayMask := FloatToStrF(CalcValue, ffNumber, 15,2); end; if(AnsiSameText(FieldName, 'Vl_Totais')) then begin FinTot := FinTot + TblFinVl_Dinheiro.AsFloat; CalcValue := FinTot; DbfFin.Columns.Items[3].DisplayMask := FloatToStrF(CalcValue, ffNumber, 15,2); end; end; mas ai todos os campos aparece o mesmo valor e se eu rolar linha por linha...do grid...vai mudando o valor....
-
Jhonas, dá uma ajuda ai, pois não entendi nada....eu traduzi, mas não dá pra compreender...
-
Tenho no delphi 7, instalado o pacote de componentes do JEDI e nele na aba Jv Data Controls tem o componente JvDBGridFooter, esse componente serve para o que ? Pois creio eu que seria para ter um resultado das minhas colunas de valores, nele tem a propriedade DataSource onde coloquei o DataSource do Grid e tem a propriedade DBGrid, onde relacionei o Grid que mostrar os valores.... Se clicar duas vezes nele aparece para incluir os panels, mas não tenho nada a relacionar a qual coluna eu quero do meu gri, nesse componente tem a propriedade Columns, onde se incluir colunas tem nela a propriedade FieldName, achei que colocando o mesmo nome da coluna do Grid ia dar certo, mas também não deu.... Como uso esse componente ? Há um detalhe os dados que eu mostro no Grid eu carrego em uma tabela temporaria.
-
não entendi direito, mas creio que você teria um form principal e ai clicando em botão abreria outro. no form principal......form1 with tform2.create(self) do begin try showmodal; finally; free; end; end; ao você fechar o form2 vai voltar para o form1.
-
Criei um componente do TEdit para ter opção de Cor no onExit e onEnter, agora queria criar uma propriedade assim: Propriedades >1ª Tabela queria listar as tabelas do banco e ai selecionar qual é a tabela desse componente >2ª Campo queria listar os campos da tabela marcada na 1ª Propriedade e selecionar o campo do TEdit >3ª Tipo de Campo queria listar os tipos de campos (integer,string,date,time...etc), mas trazer marcado o tipo de campo da 2ª Propriedade >4ª Obrigatório queria marcar se esse campo vai ser obrigatório ou não Se alguém poder me ajudar eu agradeceria muito, pois não sei como estar fazendo isso em um componente.
-
Na tabelas Horas tenho o horario inicial 1, horario final 1, horario inicial 2, horario final 2 e horas no campo horas gravo o total de horas, então tenho o seguinte: na tabelas esses campos de horas são do tipo Time. na hora de carregar as informações na tabela temporária eu vou somando o campo horas em uma variavel TotalHoras do tipo Time TotalHoras := TotalHoras + QryHor.FieldByName('HORAS').AsDateTime; Mas o resultado ao invés de dar 41:19 me retorna 17:19, então percebi que quando passa de 24 horas incia novamente.....não entendi o porque..... algém poderia me ajudar ?
-
(Resolvido) Problema ao compilar com Delphi 7
pergunta respondeu ao Pedro Dias de robinhocne em Delphi, Kylix
Não entendi direito, mas você executa o projeto pelo delphi, certo ? Então ai no delphi vai informar que o projeto está em execução (running), isso é normal, agora sobre o projeto em si ficar com a borda vermelha eu não sei, o que pode ser, até as vezes pode ser algo no S.O., mas não sei lhe informar. Agora caso não queira rodar pelo delphi, executar o .exe da aplicação direto. -
(Resolvido)Quais arquivos salvar de um projeto
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Muito obrigado Micheus, valeu pela explicação... -
Selecionar linha em DBGrid e editar em um outro formulário
pergunta respondeu ao anabon de robinhocne em Delphi, Kylix
Não seria por causa desse comando ? ModalResult := mrOk; e como está no Tfrmeditar_apagar ? -
Eu faço toda vez que mexo em algum projeto meu um backup salvando a pasta inteira com todos os arquivos zipando e mandando para o meu e-mail, mas eu queria saber se tenho que salvar todos esses arquivos abaixo: Então vamos supor que eu perca todo o meu projeto e na hora que eu for pegar um backup, qual os arquivos que tenho que ter salvos, pois sei que os " *.~* " são Backup, mas e os .dcu, .ddp, .dfm e .pas tem que salvar quais ? todos ? obrigado
-
(Resolvido)Procedure para calcular valores de fechamento
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Muito obrigado Samara....não conheço muito sobre Procedure....estou começando a trabalhar com isso....utilizo muito o aplicativo e estou querendo colocar o banco para trabalhar um pouco mais...para ficar algo mais rápido....obrigado.... -
(Resolvido)Procedure para calcular valores de fechamento
uma questão postou robinhocne Delphi, Kylix
Pessoal estou criando uma procedure para calcular alguns valores de fechamento de caixa, só estou fazendo testes para depois analisar se vai ficar melhor assim, fiz uma aqui, mas o resultado não retorna correto; essa é a procedure: SET TERM ^; CREATE PROCEDURE P_VDA_FECHACAIXA_VAL ( pdata date) returns ( vl_vista numeric(15,2), vl_prazo numeric(15,2)) as declare variable vl_valor_aux numeric(15,2); declare variable tp_pgto_aux varchar(15); begin vl_valor_aux = 0; VL_PRAZO = 0; VL_VISTA = 0; tp_pgto_aux = ''; for select ValParcela,FormasDePg from Compromissos where DtVenda >= :pData and Fechado = 'N' into :vl_valor_aux, :tp_pgto_aux do Begin if (:tp_pgto_aux = 'Á VISTA') then begin VL_VISTA = VL_VISTA + :vl_valor_aux; end else if (:tp_pgto_aux = 'PARCELA') then begin VL_PRAZO = VL_PRAZO + :vl_valor_aux; end suspend; end end^ SET TERM; ^ GRANT SELECT ON COMPROMISSOS TO PROCEDURE P_VDA_FECHACAIXA_VAL; GRANT EXECUTE ON PROCEDURE P_VDA_FECHACAIXA_VAL TO SYSDBA; Nela eu verifico na tabela compromissos se a FormasdePg é "Á VISTA" ou "PARCELA" para me retornar o resultado de ambas, porém retorna assim: o valor correto é no valor a prazo eu tenho 2 registros e a vista tem como sair em coluna igual assim: uma ajuda -
faltava setar a propriedade FooterBand...... Agora está ordenando na quebra e campos de detalhes, está somando cada quebra (SubTotal) e retornando um total geral...por fim....completo :D Nossa Micheus, cara muito obrigado mesmo pela ajuda, paciência, me ajudou muito e entendi várias coisas com suas explicações.....obrigado mais uma vez..... :lol: :D ^_^
-
Coloquei uma QRBand e mudei o BandType para rbGroupFooter, liguei o LinkBand com a QRGroup1, nele eu coloquei os QrExpr : sum(valor), sum(recebido) e sum(receber). mesmo assim não trouxe nada, testei como rbGroupHeader, mas também não deu, o que posso estar fazendo de errado ? Pela imagem daquele relelatório inicial, parece que este campo é string e não numérico. Sendo string, dependendo como está o texto isto poderia acontecer. Vai ficar de eu avaliar isto daqui. Eventualmente, voce não poderia utilizar a data? Em teoria, a ordem de vencimento é a orde das parcelas - crescente Nesse caso eu tenho o campo que traz o numero da parcela, é um campo numeric, coloquei ele e o CodCli como order by também, ai deu certo. Ficou então order by A.CodCli, A.NomCli, A.NumParc