Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problema con herencia en RBuilder 14 y XE2 (https://www.clubdelphi.com/foros/showthread.php?t=77641)

lmir 14-02-2012 20:33:12

Problema con herencia en RBuilder 14 y XE2
 
Hola amigos

Estoy tratando de migrar a XE2 un proyecto hecho hace tiempo en Delphi 6. Ahi usaba un formulario que contenía un componente ppReportBase (hecho a partir de ppReport de ReportBuilder), ese formulario era heredado para cada reporte en el proyecto (bueno de esa manera tenia la posibilidad de meter mi código en varias partes de la funcionaliadd de RBuilder).

Bien, eso estuvo bien en Delphi 6 y luego he probado que funciona en Delphi 7, ... hasta Delphi 2007.

Pero en XE2 me dan varios problemas, al parecer algo en la herencia, pienso yo, pero no acierto a adivinar que puede ser. El componente ppReportBase me funciona bien, el solo, pero cuando trabajo con los formularios heredados es el rollo.
Cuando en diseño voy a colocar un ppLabel (en el diseñador de reportes del formulario heredado), por ejemplo me salta el error List out of bounds y curiosamente se crea un ppLabel en el PAS pero no en el DFM y si pincho en Details me sale algo así:

Código:

[500A3234]{rtl160.bpl  } System.Classes.TList.Insert (Line 3932, "System.Classes.pas" + 5) + $1
[11EF1E98]{rbRCL1416.bpl} Ppclass.TppBand.AddObject + $84
[11EF5700]{rbRCL1416.bpl} Ppclass.TppComponent.SetBand + $54
[11DDCC80]{rbRCL1416.bpl} Ppctrls.TppCustomText.SetBand + $0
[120D079A]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.AddComponent + $E6
[120D17CA]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.ehWorkspace_MouseUp + $BA
[11CD6627]{rbRTL1416.bpl} Ppmulticast.TppMulticastEvent.Notify + $27
[120BEF56]{rbIDE1416.bpl} Ppdesignerworkspace.TppWorkspace.MouseUp + $4A
[503331A8]{vcl160.bpl  } Vcl.Controls.TControl.DoMouseUp (Line 7448, "Vcl.Controls.pas" + 2) + $28
[50333224]{vcl160.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7461, "Vcl.Controls.pas" + 9) + $6
[50332814]{vcl160.bpl  } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[121C6660]{rbIDE1416.bpl} Ppsynuedit.TSynEditPlugin + $70
[503369AB]{vcl160.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9745, "Vcl.Controls.pas" + 1) + $9
[50337163]{vcl160.bpl  } Vcl.Controls.TWinControl.WndProc (Line 9976, "Vcl.Controls.pas" + 152) + $6
[503367B8]{vcl160.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[500B5FCC]{rtl160.bpl  } System.Classes.MakeObjectInstance (Line 13921, "System.Classes.pas" + 0) + $0
[504524EF]{vcl160.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50452532]{vcl160.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50452865]{vcl160.bpl  } Vcl.Forms.TApplication.Run (Line 10331, "Vcl.Forms.pas" + 26) + $3

Les agradecería mucho su ayuda.

lmir

Ñuño Martínez 16-02-2012 01:27:25

"List out of bounds" siginifica que se está intentando acceder a un elemente de una lista, pero el índice está fuera de rango, bien por encima o por debajo de los límites. Que se cree en el archivo fuente pero no se coloque en el formulario es sólo porque no es capaz de crear el objeto debido al error.

Nunca he usado esos componentes "pp", pero por lo que dices yo apostaría por una mala instalación o por una desincronización entre las versiones (que la versión de los componentes entren en conflicto con tu versión de Delphi).

lmir 17-02-2012 16:40:15

Muchas gracias por su ayuda. Lo que es un poco dificil revisar todo el codigo de ese ReportBuilder (decidi usarlo en una epoca en que el FastReport solo tenia una documentacion minima y en ruso... y ahora ya no estoy tan contento con aquella decisión ...).

Pensé que a lo mejor hay algún tipo de incompatibilidad conocida entre las versiones de estos componentes anteriores al Delphi 2009 y las últimas en lo referente a la herencia, porque repito, hasta en Delphi 2007 todo va bien.

Y lo de convertir de ReportBuilder a FastReport creo que es demasiado elemental.

Pero muchas gracias ...

Ñuño Martínez 18-02-2012 11:35:05

Cita:

Empezado por lmir (Mensaje 425358)
(...) una epoca en que el FastReport solo tenia una documentacion minima y en ruso... (...)

Anda que, vaya ganas... :rolleyes:

Siento no poder ayudarte más.

Casimiro Notevi 18-02-2012 12:33:00

ReportBuilder tiene un buen sistema de soporte al usuario, ¿has preguntado a ellos?, también tienen una inmensa lista de correos que seguro que está comentado ese problema, en todo caso puedes preguntar tú también.
Deberías preguntar en el soporte técnico, ya que te has gastado un buen dinero en el programa.

Al González 18-02-2012 17:35:08

Hola.

Esto no te será de gran ayuda, pero te comento que también uso ReportBuilder, desde hace más de 10 años (cuando la única alternativa factible era Quick Report). Es algo que espero cambiar este año por alguna otra biblioteca de reportes más actual y libre (agradezco recomendaciones :)).

El caso es que ya desde Delphi 5 venía experimentando problemas como el que describes con la herencia visual en ReportBuilder. Entonces el acceso a material en Internet era poco (de hecho no tenía Internet permanente), y tras muchas pruebas y revisiones infructuosas decidí que con ReportBuilder no añadiría una sola etiqueta TppXXX en una plantilla (formulario o módulo de datos base de la cual se derivan otros). En tales plantillas los únicos objetos que pongo de ReportBuilder son TppReport (el reporte vacío), TppDBPipeline (el enlace con la fuente de datos sin especificar cuál) y TppViewer (el presentador de vista preliminar); el resto de objetos TppXXX los agrego siempre en los formularios finales. Es un hábito que mantengo desde entonces para evitar los problemas de la herencia visual en ReportBuilder.

Eso sí, en las plantillas suelo colocar manejadores de eventos (código) que luego en los formularios derivados asigno a etiquetas TppXXX mediante el inspector de objetos. Es decir, al menos el código sí puede ser centralizado en la plantilla sin problemas con la herencia.

Un saludo dial-up.

Al González. :)

Casimiro Notevi 18-02-2012 19:38:30

Aunque he estado usando reportbuilder desde hace 11 años, nunca tuve ese problema, seguramente porque es delphi 5 con reportbuilder 3 :D

Al, actual y libre... no la conozco, salvo report manager, que es fabulosa pero tiene un problema, que su creador parece que la está dejando morir, hace unos meses que la abandonó a su suerte en mitad del gran océano y ni siquiera ha vuelto la vista atrás para despedirse de ella :o

lmir 20-02-2012 15:54:32

Muchas gracias por sus sugerencias. Trataré de averiguar en el sitio de RB como me aconsejan .....


lmir

Casimiro Notevi 21-02-2012 10:31:47

Cita:

Empezado por Casimiro Notevi (Mensaje 425451)
Al, actual y libre... no la conozco, salvo report manager, que es fabulosa pero tiene un problema, que su creador parece que la está dejando morir, hace unos meses que la abandonó a su suerte en mitad del gran océano y ni siquiera ha vuelto la vista atrás para despedirse de ella :o


Vaya, si antes lo digo... por fin han solucionado los problemas en la web de reportmanager y han puesto cosas nuevas :)


La franja horaria es GMT +2. Ahora son las 16:54:20.

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