1. Como utilizar imagem (timage) sem piscar 2. The following example copies the selected rows in a db grid to a list box 3. Connection String do ADO (Delphi) 4. QuickRep com repeticao sem utilizacao de tabelas 1. Como utilizar imagem (timage) sem piscar procedure TForm1.FormCreate(Sender: TObject); begin //ativa buffer para movimento de timage sem piscar DoubleBuffered:=True; end; //fazendo com que a imagem se movimente de um lado //para o outro (indo e voltando) procedure TForm1.Timer1Timer(Sender: TObject); begin //verifica o limite maximo da imagem na direita if image1.Left >= 750 then begin image1.tag := 1; end else begin //verifica o limite minimo da imagem na esquerda if image1.Left <= 100 then image1.tag := 0; end; //alterna com incremento +1 ou -1 de acordo com a tag if image1.Tag = 0 then image1.Left := image1.Left + 1; if image1.Tag = 1 then image1.Left := image1.Left - 1; end; 2. The following example copies the selected rows in a db grid to a list box procedure TForm1.Button1Click(Sender: TObject); var i, j: Integer; s: string; begin if DBGrid1.SelectedRows.Count>0 then with DBGrid1.DataSource.DataSet do for i:=0 to DBGrid1.SelectedRows.Count-1 do begin GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= ''; end; end; 3. Connection String do ADO (Delphi) Provider=SQLOLEDB.1;Persist Security Info=False;User ID=nome_do_usuario;Initial Catalog=nome_do_banco;Data Source=host_servidor 4. QuickRep com repeticao sem utilizacao de tabelas //inicio dos procedimentos para a impressao das cotas procedure TForm1.QuickRep2BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin //zera contador para inicio CurrentItem := 0; //contador para as 11 leituras de um so contribuinte contador := 0; //contador para as paginas (de 1 a 4) e depois (de 5 a 8) etc. pagina := 0; //contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina indice := 1; //exibe por n vezes uma so linha x 9 PrintReport := (richedit1.Lines.Count * 9) > 0; end; procedure TForm1.QuickRep2NeedData(Sender: TObject; var MoreData: Boolean); begin //verifica limite maximo do contador if CurrentItem < (richedit1.Lines.Count * 9) then begin //inibi o marcador inicial/final com a cor branca qrlabel39.Color := clWhite; if (contador >= 0) and (contador <= 3) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 469,10); //vencimento qrlabel21.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 77,12); //valor do imposto qrlabel22.Caption := 'Cota Única'; //cota unica qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := 'Cota Única'; //cota unica qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 469,39); //cota unica 15 qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 508,39); //cota unica 10 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 547,39); //cota unica 5 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 586,39); //cota unica i qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 625,39); //cota unica 1 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 664,39); //cota unica 2 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 703,39); //cota unica 3 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 742,39); //cota unica 4 qrlabel34.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 781,39); //cota unica 5 qrlabel35.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 820,39); //cota unica 6 qrlabel36.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 859,39); //cota unica 7 qrlabel37.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 898,39); //cota unica 8 qrlabel38.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 937,39); //cota unica 9 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; //cor que visualiza o marcador inicial qrlabel39.Color := clBlack; end; if (contador >= 4) and (contador <= 7) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1030,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 976, 2); //cota 1 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 976, 2); //cota 1 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1030,39); //cota 1 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1069,39); //cota 1 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1108,39); //cota 1 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1147,39); //cota 1 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1186,39); //cota 1 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1225,39); //cota 1 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1264,39); //cota 1 6 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1303,39); //cota 1 7 qrlabel34.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1342,39); //cota 1 8 qrlabel35.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1381,39); //cota 1 9 qrlabel36.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1420,39); //cota 1 10 qrlabel37.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1459,39); //cota 1 11 qrlabel38.Caption := ''; //cota 1 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 8) and (contador <= 11) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1552,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1498, 2); //cota 2 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1498, 2); //cota 2 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1552,39); //cota 2 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1591,39); //cota 2 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1630,39); //cota 2 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1669,39); //cota 2 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1708,39); //cota 2 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1747,39); //cota 2 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1786,39); //cota 2 6 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1825,39); //cota 2 7 qrlabel34.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1864,39); //cota 2 8 qrlabel35.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1903,39); //cota 2 9 qrlabel36.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1942,39); //cota 2 10 qrlabel37.Caption := ''; //cota 2 qrlabel38.Caption := ''; //cota 2 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 12) and (contador <= 15) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2035,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1981, 2); //cota 3 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),1981, 2); //cota 3 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2035,39); //cota 3 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2074,39); //cota 3 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2113,39); //cota 3 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2152,39); //cota 3 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2191,39); //cota 3 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2230,39); //cota 3 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2269,39); //cota 3 6 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2308,39); //cota 3 7 qrlabel34.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2347,39); //cota 3 8 qrlabel35.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2386,39); //cota 3 9 qrlabel36.Caption := ''; //cota 3 qrlabel37.Caption := ''; //cota 3 qrlabel38.Caption := ''; //cota 3 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 16) and (contador <= 19) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2479,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2425, 2); //cota 4 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2425, 2); //cota 4 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2479,39); //cota 4 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2518,39); //cota 4 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2557,39); //cota 4 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2596,39); //cota 4 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2635,39); //cota 4 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2674,39); //cota 4 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2713,39); //cota 4 6 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2752,39); //cota 4 7 qrlabel34.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2791,39); //cota 4 8 qrlabel35.Caption := ''; //cota 4 qrlabel36.Caption := ''; //cota 4 qrlabel37.Caption := ''; //cota 4 qrlabel38.Caption := ''; //cota 4 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 20) and (contador <= 23) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2884,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2830, 2); //cota 5 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2830, 2); //cota 5 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2884,39); //cota 5 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2923,39); //cota 5 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),2962,39); //cota 5 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3001,39); //cota 5 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3040,39); //cota 5 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3079,39); //cota 5 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3118,39); //cota 5 6 qrlabel33.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3157,39); //cota 5 7 qrlabel34.Caption := ''; //cota 5 qrlabel35.Caption := ''; //cota 5 qrlabel36.Caption := ''; //cota 5 qrlabel37.Caption := ''; //cota 5 qrlabel38.Caption := ''; //cota 5 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 24) and (contador <= 27) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3250,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3196, 2); //cota 6 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3196, 2); //cota 6 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3250,39); //cota 6 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3289,39); //cota 6 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3328,39); //cota 6 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3367,39); //cota 6 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3406,39); //cota 6 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3445,39); //cota 6 5 qrlabel32.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3484,39); //cota 6 6 qrlabel33.Caption := ''; //cota 6 qrlabel34.Caption := ''; //cota 6 qrlabel35.Caption := ''; //cota 6 qrlabel36.Caption := ''; //cota 6 qrlabel37.Caption := ''; //cota 6 qrlabel38.Caption := ''; //cota 6 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 28) and (contador <= 31) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3577,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3523, 2); //cota 7 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3523, 2); //cota 7 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3577,39); //cota 7 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3616,39); //cota 7 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3655,39); //cota 7 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3694,39); //cota 7 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3733,39); //cota 7 4 qrlabel31.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3772,39); //cota 7 5 qrlabel32.Caption := ''; //cota 7 qrlabel33.Caption := ''; //cota 7 qrlabel34.Caption := ''; //cota 7 qrlabel35.Caption := ''; //cota 7 qrlabel36.Caption := ''; //cota 7 qrlabel37.Caption := ''; //cota 7 qrlabel38.Caption := ''; //cota 7 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; end; if (contador >= 32) and (contador <= 35) then begin qrlabel17.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel18.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel19.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 105,37); //nome qrlabel20.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3865,10); //vencimento qrlabel21.Caption := ''; //valor do imposto qrlabel22.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3811, 2); //cota 8 qrlabel23.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 22, 8); //codigo do imovel qrlabel24.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]), 48,11); //natureza qrlabel25.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3811, 2); //cota 8 qrlabel26.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3865,39); //cota 8 i qrlabel27.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3904,39); //cota 8 1 qrlabel28.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3943,39); //cota 8 2 qrlabel29.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),3982,39); //cota 8 3 qrlabel30.Caption := copy(trim(richedit1.Lines.Strings[(pagina+indice)-1]),4021,39); //cota 8 4 qrlabel31.Caption := ''; //cota 8 qrlabel32.Caption := ''; //cota 8 qrlabel33.Caption := ''; //cota 8 qrlabel34.Caption := ''; //cota 8 qrlabel35.Caption := ''; //cota 8 qrlabel36.Caption := ''; //cota 8 qrlabel37.Caption := ''; //cota 8 qrlabel38.Caption := ''; //cota 8 //valida o contador para indice das linhas 1o. 2o. 3o. 4o. contribuinte por pagina if indice = 4 then begin indice := 1; end else begin indice := indice + 1; end; //zera o contador para as 9 leituras de uma so linha if contador = 35 then begin //retorna o valor do contador para -1 pq será incrementado //mais adiante, atribuindo-se assim ao seu valor, 0 como inicial contador := -1; //incrementa mais 4 paginas o contador para o indice das linhas //do 1o. 2o. 3o. e 4o. contribuinte pagina := pagina + 4; end; //cor que visualiza o marcador final qrlabel39.Color := clBlack; end; //incrementa o contador para as 9 leituras de uma so linha contador := contador + 1; //incrementa o contador geral Inc(CurrentItem); //recebe valor verdadeiro para continuacao da impressao MoreData := CurrentItem <= (richedit1.Lines.Count * 9); end; end; //fim dos procedimentos para a impressao das cotas 5.