
robinhocne
Membros-
Total de itens
854 -
Registro em
-
Última visita
Tudo que robinhocne postou
-
Chamando um Relatorio feito no FasReport
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Erro de violação de endereço no modulo Loja.exe procedure TFrmRelReceberVencer.SpbExibirClick(Sender: TObject); begin // DtmRelatorios.FxReceberVencer.LoadFromFile('c:\IzaLoja\Relatorios\RlReceberVencer.fr3'); DtmRelatorios.FxReceberVencer.ShowReport; end; OBS: // deixe como comentario e execute ... se não ocorrer o mesmo erro, saberá que o erro está na maneira de carregar o arquivo Sempre comente as linhas que estão com erro... fica mais facil de achar a solução abraço Ai dá o mesmo erro de violação e para na linha de baixo! -
Chamando um Relatorio feito no FasReport
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
as varaveis TxtDtIni.Date, TxtDtFin.Date e TxtCod.Text; tem que receber os valores antes que esta rotina seja executada. exemplo: TxtDtIni.Date := DateEdit1.Date; TxtDtFin.Date := DateEdit2.Date; TxtCod.Text := 'A01'; with QryReceberVencer do begin close; sql.clear; sql.add('Select * From Contas_Recber where DtPag is null and (Dtpag >=:DtIni) and (DtPag <=:DtFin) and CodCli =:Cod'); ParamByName('DtIni').AsDateTime := TxtDtIni.Date; ParamByName('DtFin').AsDateTime := TxtDtFin.Date; ParamByName('Cod').AsString := TxtCod.Text; open; end; abraço Mas primeiro Teria que vero sobre o erro ao abrir o relatório para depois passar por essa etapa: o erro está especificado no começo do post Post#5 -
Chamando um Relatorio feito no FasReport
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Robinho.... se voce não postar qual é o erro, quem é que vai advinhar ? postar o codigo onde acontece o erro também pode ajudar muito na solução do problema abraço É não consegui mesmo.... Vou detalhar mais... >>Erro Criei um DataModule ( FDtmRelatorios ) pois é onde que vai ficar meus relatórios nesse DataModule tem Fiz o relatório e tentei de varias maneiras e o erro foi o mesmo exeto quando eu salvo o relatório na pasta do projetcs e ainda com esse nome report1.fr3. Pois salvei com outro nome na mesma pasta e deu o mesmo erro. esse é o erro. assim que estou chamando, pois já estou chamando com o nome do relario certo e o caminho da pasta onde está o relatório. procedure TFrmRelReceberVencer.SpbExibirClick(Sender: TObject); begin DtmRelatorios.FxReceberVencer.LoadFromFile('c:\IzaLoja\Relatorios\RlReceberVencer.fr3'); DtmRelatorios.FxReceberVencer.ShowReport; end; e quando dá o erro ele para na nessa primeira linha do codigo. >>Duvida > Agora a duvida seria... para que eu possa buscas os dados para o relatório e vizualizar tbém no relatório, primeiro eu fiz uma instrução normal na QryReceberVencer ( direto na query ) with QryReceberVencer do begin close; sql.clear; sql.add('Select * From Contas_Recber where DtPag is null'); open; end; Mas tipo se eu quero fazer um relatório detalhado com filtros.... Tipo essa relatório eu quero filtrar ele por Periodo de Datas e tbém por Clientes....tipo seria assim: with QryReceberVencer do begin close; sql.clear; sql.add('Select * From Contas_Recber where DtPag is null and (Dtpag >=:DtIni) and (DtPag <=:DtFin) and CodCli =:Cod'); ParamByName('DtIni').AsDateTime := TxtDtIni.Date; ParamByName('DtFin').AsDateTime := TxtDtFin.Date; ParamByName('Cod').AsString := TxtCod.Text; open; end; e como eu vou passar esse parametros para a ibquery se estou executando dentro dela para mostrar os dados e para que eu possa colocar no relatório ? -
Dificil como ? Fico interessado..... Conversamos no meu e-mail! robinhocne@hotmail.com me explique melhor! Está adicionado amigo. Abraços ! mas não posso entrar no MSN, pois estou no meu servico qualquer coisa manda e-mail! Irei mandar um email para você explicando direitinho, e você me responde. Abraços ! ok, fico aguardando!
-
Dificil como ? Fico interessado..... Conversamos no meu e-mail! robinhocne@hotmail.com me explique melhor! Está adicionado amigo. Abraços ! mas não posso entrar no MSN, pois estou no meu servico qualquer coisa manda e-mail!
-
Dificil como ? Fico interessado..... Conversamos no meu e-mail! robinhocne@hotmail.com me explique melhor!
-
Verifica se está sendo criando o relatorio quando você executa o programa, estava com esse problema semana passada e tinha me esquecido desse detalhe!
-
Relatório - Pular para próxima página (Fortes Report)
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Mas por exemplo do jeito que você colocou aqui eu não achei essa propriedade no na banda e nem no label do relatorio e nenhum parecido! QRRelAnual.ForceNewPage; Mas o que eu quero de ajuda para relacionar esse problema é que eu estou montando esse relatorio em tempo de execução porque tentei fazer do jeito que eu quero que vou detalhar em baixo.... Controle de Vendas ----------------------------------------------------- Venda Qtde Valor Unitário Valor Total 00001 2 20,00 40,00 00002 1 59,90 59,90 00003 3 49,90 149,70 Valor Total : R$ 249,60 Controle do Caixa --------------------------------------------------------------------- Controle Descrição Tipo Valor 000001 Recebimento da Venda - 000001 E 40,00 000002 Recebimento da Parcela - 01/000003 E 35,90 000003 Vale - Func.: Robinho de Morais S 50,00 Valor Total : R$ 25,90 Então é assim em uma relatório vou estar mostrando varios detalhes, mas só consegui colocar 1 para detalhar... Como no Fortes Report eu faço isso ????? -
Relatório - Pular para próxima página (Fortes Report)
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Resposta 1 - O TRLLabel deve ter uma propriedade de impressão ( tipo OnPrint ). Como voce está criando campos em tempo de execução, somente poderá ser adicionado o codigo, após a criação do componente .. eu costumo usar no proprio relatorio. Resposta 2 - é extamente isto que acontece quando voce estica a banda de detail. ( o ideal é manter apenas a distancia de uma linha ( Height := 20 ) ) onde os campos serão alinhados. experimente: sql.Add('Select * From caixa Where DtPgto = :DtIni and Tipo in ('E', 'S' )'); abraço mas como eu tinha citado nessa linha que eu estou achando estranho: -
Relatório - Pular para próxima página (Fortes Report)
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Se voce estiver usando uma banda de detalhe, os registros excedentes serão mostrados em uma nova pagina ou se quiser determinar quantos registros deverão ter na pagina, voce deve criar uma condição para tal, usando o evento OnPrint do campo que quer controlar usando um contador exemplo: procedure TQRRelAnual.QRDBText3Print(sender: TObject; var Value: String); begin a := a + 1; if a = 20 then begin QRRelAnual.ForceNewPage; a := 0; end; end; olhei aqui mas não tenho essa propriedade no fortes report e na hora de contar linha eu teria que contar quando eu estou criando ele em tempo de execução ? ou no relatorio ? Uma coisa que estive reparando essa noite...... Primeiro acho que o fortes report está com alguns erros: pois se se puxo até o final a bando de details ele pula outra pagina e fica o cabeçalho em uma e os dados pela metade em outra.... esse é o codigo que estou montado... // criando controle do Caixa {Inicio do Cabecalho} // controle LbRelatCaixa := TRLLabel.Create(nil); with LbRelatCaixa do begin Name := 'LbRelatCaixa'; top := TopCaixa + 50; left := 250; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; //Align := faCenter; AutoSize := true; width := 54; Caption := 'CONTROLE DO CAIXA'; Parent := FrmRelCaixa.RLBand2; end; // separador LbSepCaixa := TRLLabel.Create(nil); with LbSepCaixa do begin Name := 'LbSepCaixa'; top := TopCaixa + 56; left := 4; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := '----------------------------------------------------------------------------------------'; Parent := FrmRelCaixa.RLBand2; end; // controle LbCxCont := TRLLabel.Create(nil); with LbCxCont do begin Name := 'LbCxCon'; top := TopCaixa + 65; left := 4; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := 'CONT'; Parent := FrmRelCaixa.RLBand2; end; // historico LbCxHist := TRLLabel.Create(nil); with LbCxHist do begin Name := 'LbCxHist'; top := TopCaixa + 65; left := 40; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := 'HISTÓRICO / CLIENTE'; Parent := FrmRelCaixa.RLBand2; end; // descricao LbCxDesc := TRLLabel.Create(nil); with LbCxDesc do begin Name := 'LbVCxDesc'; top := TopCaixa + 65; left := 300; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := 'DESCRIÇÃO'; Parent := FrmRelCaixa.RLBand2; end; // Valor LbCxValo := TRLLabel.Create(nil); with LbCxValo do begin Name := 'LbCxValo'; top := TopCaixa + 65; left := 647; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := 'VALOR'; Parent := FrmRelCaixa.RLBand2; end; // FATURADO LbCxTipo := TRLLabel.Create(nil); with LbCxTipo do begin Name := 'LbCxTipo'; top := TopCaixa + 65; left := 700; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; width := 54; Caption := 'T'; Parent := FrmRelCaixa.RLBand2; end; {Fim do Cabecalho} {Inicio da Pesquisa do Caixa} with DtmLoja.QryCaixa do begin close; sql.Clear; sql.Add('Select * From caixa Where DtPgto = :DtIni and Tipo in ('#39 + 'E' + #39', '#39 + 'S' + #39')'); ParamByName('DtIni').AsDate := TxtDtIni.Date; open; end; TotCaixa := DtmLoja.QryCaixa.RecordCount; for PC := 1 to TotCaixa do begin // controle CxCont := TRLLabel.Create(Self); with CxCont do begin Name := 'CxCont' + IntToStr( PC ); top := TopCaixa + 60 + (PC*20); left := 4; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := false; width := 40; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; // cliente CxHist := TRLLabel.Create(Self); with CxHist do begin Name := 'CxHist' + IntToStr( PC ); top := TopCaixa + 60 + (PC*20); left := 40; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := false; width := 165; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; // descricao CxDesc := TRLLabel.Create(Self); with CxDesc do begin Name := 'CxDesc' + IntToStr( PC ); top := TopCaixa + 60 + (PC*20); left := 200; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := false; width := 410; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; // Valor CxValo := TRLLabel.Create(Self); with CxValo do begin Name := 'CxValo' + IntToStr( PC ); top := TopCaixa + 60 + (PC*20); left := 600; Font.Size := 10; Font.Name := 'Courier New'; Alignment := taRightJustify; Height := 20; AutoSize := false; width := 100; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; // FATURADO CxTipo := TRLLabel.Create(Self); with CxTipo do begin Name := 'CxTipo' + IntToStr( PC ); top := TopCaixa + 60 + (PC*20); left := 700; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := false; width := 16; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; TopRec := TopCaixa + 60 + (PC*20); end; if TopRec = TotCaixa then begin TopRec := TopCaixa + 40; end; PulaCaixa := 0; while (not DtmLoja.QryCaixa.Eof) do begin PulaCaixa := PulaCaixa + 1; if PulaCaixa <= TotCaixa then begin TRLLabel ( FindComponent ( 'CxCont' + IntToStr ( PulaCaixa ) ) ).Caption := DtmLoja.QryCaixa.FieldByName('Controle').AsString; TRLLabel ( FindComponent ( 'CxHist' + IntToStr ( PulaCaixa ) ) ).Caption := DtmLoja.QryCaixa.FieldByName('Historico').AsString; TRLLabel ( FindComponent ( 'CxDesc' + IntToStr ( PulaCaixa ) ) ).Caption := DtmLoja.QryCaixa.FieldByName('Descricao').AsString; TRLLabel ( FindComponent ( 'CxValo' + IntToStr ( PulaCaixa ) ) ).Caption := FormatFloat('##,##0.00', DtmLoja.QryCaixa.FieldByName('Valor').AsCurrency); TRLLabel ( FindComponent ( 'CxTipo' + IntToStr ( PulaCaixa ) ) ).Caption := DtmLoja.QryCaixa.FieldByName('Tipo').AsString; end; DtmLoja.QryCaixa.Next; end; LbCxTotal := TRLLabel.Create(nil); with LbCxTotal do begin Name := 'LbCxTotal'; top := TopRec + 40; left := 400; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := true; Font.Style := [fsbold]; // Borders.DrawRight := true; Caption := 'Total do Caixa : '; Parent := FrmRelCaixa.RLBand2; end; // Total CxTotal := TRLLabel.Create(Self); with CxTotal do begin Name := 'CxTotal'; top := TopRec + 40; left := 600; Font.Size := 10; Font.Name := 'Courier New'; Height := 20; AutoSize := false; Font.Style := [fsbold]; width := 130; // Borders.DrawRight := true; Caption := ''; Parent := FrmRelCaixa.RLBand2; end; {fim da pesquisa do caixa} with DtmLoja.QryCaixa do begin close; sql.Clear; sql.Add('Select sum(Valor) as "Entrada" From caixa Where DtPgto = :DtIni and Tipo = ('#39 + 'E' + #39')'); ParamByName('DtIni').AsDate := TxtDtIni.Date; open; end; Entrada := DtmLoja.QryCaixa.FieldByName('Entrada').AsCurrency; with DtmLoja.QryCaixa do begin close; sql.Clear; sql.Add('Select sum(Valor) as "Saida" From caixa Where DtPgto = :DtIni and Tipo = ('#39 + 'S' + #39')'); ParamByName('DtIni').AsDate := TxtDtIni.Date; open; end; Saida := DtmLoja.QryCaixa.FieldByName('Saida').AsCurrency; Total := Entrada - Saida; TRLLabel ( FindComponent ( 'CxTotal' ) ).Caption := FormatFloat('##,##0.00',Total); uma outra coisa na instrução sql eu verifico quantos campos está sendo retornados para montar o relatorio certo, mas estava verificando e não deu muito certo. fiz dessa maneira: with DtmLoja.QryCaixa do begin close; sql.Clear; sql.Add('Select * From caixa Where DtPgto = :DtIni and Tipo in ('#39 + 'E' + #39', '#39 + 'S' + #39')'); ParamByName('DtIni').AsDate := TxtDtIni.Date; open; end; TotCaixa := DtmLoja.QryCaixa.RecordCount; ai minha variavel inteiro recebe o Total da pesquisa, mas está retornado errado do que tenho salvo! -
Estou Fazendo um relatório do meu caixa e nele mostro varias tipos, tipo o do caixa, de contas a receber, de vendas, contas a pagar e conta bancaria... mas ele só aparece até o limite da pagina (da primeira), como eu faço para que quando chegar no fim do relatório (os dados) eu faço que ele pule para a próxima página?
-
Chamando um Relatorio feito no FasReport
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Um dos problemas: DtmRelatorios.FrCaixa.LoadFromFile('report1.fr3'); tente: DtmRelatorios.FrCaixa.LoadFromFile('c:\Sistema\Relatorios\report1.fr3'); abraço Mas tentei assim tbém e deu erro no executável! -
estou com uma problema de iniciante mesmo.... Como eu chamo um relatório? pois salvei o relatorio como 'report1.fr3' E coloquei ele em um DataModule: e chamo ele assim: Código: procedure TFrmLisRelCaixa.SpeedButton1Click(Sender: TObject); begin DtmRelatorios.FrCaixa.LoadFromFile('report1.fr3'); DtmRelatorios.FrCaixa.ShowReport; end; mas não dá nada, mesmo testando ele conectado direto com o banco.. pois salvei ele e coloquei em uma pasta no c: c:\Sistema\Relatorios o que estou fazendo de errado ??
-
DisplayMask do TRLDBText ( Fast Report ) não funiona
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Mas eu seto o componente no DataSource para conectar direto com a minha query que estou fazendo a instrução sql.... ai eu mostro todos os registros...sei que usando o label do fortes dá certo, mas não no componente que liga direto com o datasource -
estou colocando uma mascara desse jeito : mas na hora que eu mostro o relatorio ele não funciona, mostra normal! alguém sabe me dizer o que está acontecendo ?
-
Fiz um relatório no Fortes Report para poder imprimir em impressora matricial, coloquei o componente TRLDraftFilter e liguei ele com o relatório, mas no componente eu não mudei nada nele a impressora matricial é uma Epson Lx 300, mas quando eu mando imprimir aparecer um tipo de filtro ai tem padrão e o outro que é o mesmo nome do componente q eu coloquei mas ele demora para imprimir... as fonte são todas arial, algumas em negrito, mas a maioria normal!
-
Colorir linha resultante de busca em DbGrid
pergunta respondeu ao Gabriel Cabral de robinhocne em Delphi, Kylix
Achei isso aqui no forum da active delphi, mas estou no serviço e não tem como eu verificar se dá certo, mas verifique ai.. principalmente umas das ultimas resposta (a funcao), vou verificar de noite: http://www.activedelphi.com.br/forum/viewt...58579a65c65a981 -
Colorir linha resultante de busca em DbGrid
pergunta respondeu ao Gabriel Cabral de robinhocne em Delphi, Kylix
Cara to precisando disso tbém! -
(Resolvido) Busca dinâmica em DBGrid
pergunta respondeu ao Gabriel Cabral de robinhocne em Delphi, Kylix
Bom eu utilizo dessa forma que você quer, eu faço uma instrução sql assim no onchange do edit ..: procedure TFrmPesProduto.txtlocChange(Sender: TObject); begin // Buscar por Nome if RadioButton.ItemIndex = 0 then With QryBusca Do begin Close; SQL.Clear; SQL.Add('Select * From Produtos'); SQL.Add('Where Upper(Produto)'); SQL.Add('Like Upper('''+TxtLoc.Text+'%'')'); //Iniciado por Open; end; // Busca por Codigo if RadioButton.ItemIndex = 1 then With QryBusca Do begin Close; SQL.Clear; SQL.Add('Select * From Produtos'); SQL.Add('Where Upper(Codigo)'); SQL.Add('Like Upper('''+TxtLoc.Text+'%'')'); //Iniciado por Open; end; end; e para a linha do grid ficar de outra cor ai é só fazer um procedimento no dbgrid no evento OnDrawDataCell ( acho que é isso ) espero ter ajudado! -
como ver se um programa está aberto mais de uma vez?
uma questão respondeu robinhocne em Delphi, Kylix
pesquisei no google e olhe o que eu achei facinho... http://www.tecnobyte.com.br/dica8.html#dica11 Evitar que um programa seja executado mais de uma vez { Muitos programas Windows permitem apenas uma cópia em execução de cada vez. Isto é interessante principalmente quando é um grande aplicativo, pois duas cópias ao mesmo tempo usuaria muito mais memória. Em aplicativos desenvolvidos em Delphi podemos ter esta característica. Vejamos: - Crie um novo projeto; - Mude o "Name" do Form1 para DPGFormPrinc; - Altere o código-fonte do arquivo Project1.dpr conforme abaixo: } program Project1; uses Forms, Windows, Unit1 in 'Unit1.pas' {DPGFormPrinc}; {$R *.RES} var Handle: THandle; begin Handle := FindWindow('TDPGFormPrinc', nil); if Handle <> 0 then begin { Já está aberto } Application.MessageBox('Este programa já está aberto. A cópia ' + 'anterior será ativada.', 'Programa já aberto', MB_OK); if not IsWindowVisible(Handle) then ShowWindow(Handle, SW_RESTORE); SetForegroundWindow(Handle); Exit; end; Application.Initialize; Application.CreateForm(TDPGFormPrinc, DPGFormPrinc); Application.Run; end. -
Violação de acesso/ query.create(nil) e query.free
pergunta respondeu ao Gabriel Cabral de robinhocne em Delphi, Kylix
-
Robinho ... primeiro erro for i:= 1 to par do begin // criando os combobox ( tipos de pagamentos ) TipoPg := TComboBox.Create(Self); with TipoPg do begin Name := 'Tip'+ inttostr(i); OBS: Voce não conseguira criar mais de um componente se não hover alguma diferença no nome exemplo: TipoPg1 TipoPg2 TipoPg3 no seu caso ele esta criando apenas como TipoPg , e por isso dará erro que o componente já existe e não pode ser criado novamente Voce pode colocar os itens depois que for criado é so colocar este codigo no evento OnEnter do Combobox procedure TForm1.ComboBox1Enter(Sender: TObject); begin ComboBox1.Text := ComboBox1.Items.Strings[0]; SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, 1, 0); end; abraço Ok, consegui resolver, fiz dessa maneira, pois em cada codição que eu coloquei eu preciso de um tipo de pagamento procedure TFrmFaturar.MostraTiposdePagamentos(Sender: TObject); begin if TEdit ( FindComponent ( 'Desc' + IntToStr( ContTip ) ) ).Text = 'Á VISTA' then begin TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('DINHEIRO'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('CHEQUE'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).ItemIndex := 0; end; if TEdit ( FindComponent ( 'Desc' + IntToStr( ContTip ) ) ).Text = 'ENTRADA' then begin TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('DINHEIRO'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('CHEQUE'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).ItemIndex := 0; end else if TEdit ( FindComponent ( 'Desc' + IntToStr( ContTip ) ) ).Text = 'PARCELA' then begin TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('CHEQUE'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).Items.Add('PROMISSÓRIA'); TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).ItemIndex := 0; end; TComboBox ( FindComponent ( 'Tip' + IntToStr ( ContTip ) ) ).DroppedDown := True; ContTip := ContTip + 1; end;
-
Erro na exibição do relatorio pela segunda consulta
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
O erro esta aqui: // Coluna das Datas for i:=1 to 7 do begin data := TQRLabel.Create(self); Name := 'Dat'+inttostr(i); Não é possivel criar 7 vezes o componente com o mesmo nome deveria ser : data1 := TQRLabel.Create(self); data2 := TQRLabel.Create(self); data3 := TQRLabel.Create(self); data4 := TQRLabel.Create(self); então voce deve achar uma maneira de nomear este componente de acordo com o exemplo, já que a criação do componente está dentro de um comando For abraço ou colocar antes do For ? e quando eu fecho o relatorio e já fecho o formulario que chamo o relatorio então em questão de criar com o mesmo nome já que foi finalizado está meio esquisito para mim -
cara andei pesquisando alguma coisa sobre isso no google e olhe o primeiro site que eu achei, pesquise um pouco antes de postar. Ordernar Dados no DbGrid
-
estou criando um Combobox, mas não estou sabendo colocar os itens dentro dele na hora da criação e tbém queria que quando ele estive focado já abrisse ele, estou criando ele assim: for i:= 1 to par do begin // criando os combobox ( tipos de pagamentos ) TipoPg := TComboBox.Create(Self); with TipoPg do begin Name := 'Tip'+ inttostr(i); Left := 97; Height := 20; Width := 156; AutoSize := false; Text := 'TIPO DE PAGAMENTO'; top := -19+(i*20); Font.Style := [fsbold]; Parent := Grade; end; end; alguém poderia me ajudar ?