Ir al contenido


Foto

Creación de TQRLabel's "al vuelo" y una duda...


  • Por favor identifícate para responder
1 respuesta en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 10 octubre 2011 - 09:44

Buen día, jóvenes...

Les comparto que tengo dentro de un reporte de QuickReport 3.0 (trabajando con Delphi 6.0) la creación de una etiqueta (TQRLabel) a través de éste código:



delphi
  1. with TQRLabel.Create(Rprt.Bands.ColumnHeaderBand) do
  2. begin
  3.   Parent := Rprt.Bands.ColumnHeaderBand;
  4.   Left := iIzqrdActl;
  5.   Top := 0;
  6.   Height := 40;
  7.   Width := 120;
  8.   AutoSize := False;
  9.   Caption := 'Texto:'+IntToStr(iApntdr);
  10. end;



El detalle que necesito incluir en la creación de la etiqueta para cumplimentar un requerimiento que me pasaron hoy en la mañana, es que si el apuntador contiene números pares, cambiar el color o la presentación (lo cual no me plantea problema)

Dado éste código, ¿cómo puedo incluir un evento OnPrint exclusivo de la nueva etiqueta e incluirle el código que ya tengo en funcionamiento?

Ejemplo:



delphi
  1. with TQRLabel.Create(Rprt.Bands.ColumnHeaderBand) do
  2.   begin
  3.     Parent := Rprt.Bands.ColumnHeaderBand;
  4.     Left := iIzqrdActl;
  5.     Top := 0;
  6.     Height := 40;
  7.     Width := 120;
  8.     AutoSize := False;
  9.     Caption := 'Texto:'+IntToStr(iApntdr);
  10.   [b]OnPrint := qrlabel[i]x[/i]Print;[/b]
  11.   end;



  Agradeciendo de antemano su colaboración...
  • 0

#2 andres1569

andres1569

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 431 mensajes

Escrito 10 octubre 2011 - 11:18

Hola Felipe, veo que lo más lógico y sencillo es que tengas ya definido, desde diseño, el método del evento OnPrint para la nueva (o nuevas) etiqueta/s, y que lo asignes a la/s nueva/s etiqueta/s cuando la/s crees al vuelo. Lo de asignar una cadena no te va a servir puesto que lo que en realidad asignas es un puntero a un método, no una cadena.



delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
  6.   StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls;
  7.  
  8. type
  9.   TQuickReport1 = class(TQuickRep)
  10.     QRLabelAlVuelo: TQRLabel;
  11.     procedure QRLabelAlVueloPrint(sender: TObject; var Value: String);
  12.   private
  13.     procedure CreaLabelAlVuelo;
  14.   public
  15.   end;
  16.  
  17. var
  18.   QuickReport1: TQuickReport1;
  19.  
  20. implementation
  21.  
  22. {$R *.DFM}
  23.  
  24. procedure TQuickReport1.QRLabelAlVueloPrint(sender: TObject; var Value: String);
  25. begin
  26.   // Pintar de color gris o lo que sea
  27. end;
  28.  
  29. procedure TQuickReport1.CreaLabelAlVuelo;
  30. begin
  31.   with TQRLabel.Create(Rprt.Bands.ColumnHeaderBand) do
  32.   begin
  33.     Parent := Rprt.Bands.ColumnHeaderBand;
  34.     Left := iIzqrdActl;
  35.     Top := 0;
  36.     Height := 40;
  37.     Width := 120;
  38.     AutoSize := False;
  39.     Caption := 'Texto:' + IntToStr(iApntdr);
  40.     OnPrint := QRLabelAlVueloPrint;
  41.   end;
  42. end;
  43.  
  44. end.



Un saludo
  • 0




IP.Board spam blocked by CleanTalk.