Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Porque No Aparece? (https://www.clubdelphi.com/foros/showthread.php?t=26605)

ddd_ddd 27-10-2005 21:19:16

Porque No Aparece?
 
tengo este codigo en el evento onclick de bitbtn1:

Código:

 
 
procedure TForm1.BitBtn1Click(Sender: TObject);
I:INTEGER;
begin
        FORM2.QRMemo1.LINES.Clear;
        FOR I:=1 TO MEMO1.LINES.Count DO
          BEGIN
                FORM2.QRMemo1.Lines:=(MEMO1.Lines);
          END;
  FORM2.QuickRep1.PREVIEW;
end;

al ciclo no le hagan mucho caso, yo lo usaba para otras cosas

mi pregunta es: ¿porque en la vista previa no aparece el contenido de qrmemo1?

cuando pongo un form2.show; si lo muestra. pero en la vista previa no

delphi.com.ar 27-10-2005 21:24:56

Nooooo! Estas iterando con I pero... ¿Dónde usas I para obtener un item?

Código Delphi [-]
begin
  QRMemo1.Lines.Assign(Memo1.Lines);
  QuickRep1.PreviewModal;
end;

Saludos!

ddd_ddd 27-10-2005 21:37:53

si lo pongo asi como tu dices me escribira todo lo que hay en el memo1 en una sola linea:

ejemplo:

si en memo1 tengo escrito esto:
no
se
puede

en qrmemo1 tendria en una sola linea no se puede

como yo lo tengo el qrmemo1 quedaria igual
no
se
puede

mi problema es que en la vista previa no aparece qrmemo1

delphi.com.ar 27-10-2005 21:42:41

Cita:

Empezado por ddd_ddd
si lo pongo asi como tu dices me escribira todo lo que hay

¿Lo probaste o lo supones?

ddd_ddd 27-10-2005 21:45:22

ya lo solucione
 
lo mio esta correcto ya lo hice. lo que pasa es que no me aparecia en la vista previa porque tenia dos qrband como title

delphi.com.ar 27-10-2005 21:52:08

Ojo... tu código no solo no es correcto sino que es riesgoso.
Estas asignando un objeto TStrings perteneciente a un componente a otro TStrings perteneciente a otro. No creo que sea el caso, porque internamente hacen un Assign para mantener su misma lista, pero esta práctica, con algunas clases, puede producir que cuando uno de los dos componentes se destruya y destruya este TStrings, cuando el otro componente haga referencia a este TStrings produzca un Access Violation.
Por otro lado ciclas innecesariamente, porque no asignas los items del TStrings, sino asignas el mismo TStrings. Supongo que lo que quieres hacer es algo como:
Código Delphi [-]
var
  i: Integer;
begin
  Form2.QRMemo1.Lines.Clear;
  for i := 0 TO Memo1.Lines.Count-1 do
    Form.QRMemo1.Lines[i] :=(Memo1.Lines[i]);

  Form2.QuickRep1.Preview;

Saludos!

ddd_ddd 27-10-2005 22:07:07

si lo habia hecho asi, pero me marcaba error en los items

y si, ciclo inecesariamente

muchas gracias. por la advertencia, es cierto, ya lo habia pensado

roman 27-10-2005 22:07:13

En todo caso quizá podría usar


Código Delphi [-]
Form2.QRMemo1.Lines.Clear;
Form2.QRMemo1.Lines.AddStrings(Memo1.Lines);

// Saludos


La franja horaria es GMT +2. Ahora son las 02:30:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi