Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   LLamar procedimiento de creación de Objetos. (https://www.clubdelphi.com/foros/showthread.php?t=65226)

Robin1 28-11-2009 18:49:14

LLamar procedimiento de creación de Objetos.
 
Un gran saludo a todos.

Bueno, como había comentado en otros hilos, trabajo en la realización de un proyecto que debe crear en tiempo de ejecución algunos componentes, tales como Nuevos Tab, Webbrowsers, etc.

El tema es que la aplicación ya está hecha, y funciona de maravilla.

Ahora, me alisto, para publicar una segunda versión, con algunas nuevas características que el usuario ha pedido.

Revisando un poco, el código de la aplicación, el cual de momento es muy extenso, veo que sería posible en lugar, de repetir en distintos procedimientos las mismas instrucciones, podría en una Funcion, o procedimiento dar la instrucción, y luego en cada instancia del programa, hacer un llamado a esta.

El caso es que tengo problemas, para hacer esto, en lo refernte a la creación de objetos en tiempo de ejecución.

Aqui pongo un ejemplo del procedimiento que crea nuevos tabs en el formulario del programa...

Código:

procedure TForm1.NewTab1Click(Sender: TObject);

begin
NewTab := TTabSheet.Create(Self);
NewTab.Caption := '  New Tab  ' + IntToStr(PageControl1.PageCount +
1);
NewTab.PageControl := PageControl1;
PageControl1.ActivePage := NewTab;
end;

Este procedimiento se genera al pulsar un botón.

Ahora bien, resulta que tengo que llamar este procedimiento unas 25 veces, por lo cual, en la primara versión del programa, simplemente copié y pegué las veces necesarias las líneas de codigo.

Esta mañana intentaba entonces, llamar desde los otros 24 procedimientos, este en particular, pero siempre de algún modo obtenía un error, siendo el más comun, el compilador no reconocer el término "Self", luego de la palabra "Create".

Agradecería mucho, si alguien pudiese explicarme un poco, el modo de llamar procedimientos, para reducir un poco código que hace por momentos, enredado, y redundante, un programa propenso a errores.

Mil gracias, y nuevamente, un gran saludo.

Julián.

Al González 30-11-2009 07:34:00

Cita:

Empezado por Robin1 (Mensaje 347684)
Ahora bien, resulta que tengo que llamar este procedimiento unas 25 veces, por lo cual, en la primara versión del programa, simplemente copié y pegué las veces necesarias las líneas de codigo.

Esta mañana intentaba entonces, llamar desde los otros 24 procedimientos, este en particular, pero siempre de algún modo obtenía un error, siendo el más comun, el compilador no reconocer el término "Self", luego de la palabra "Create".

Mi recomendación sería que primero investigaras un poco acerca del constructor Create de TComponent y también sobre la palabra reservada Self de Delphi.

En caso de no tener claro qué es en sí un constructor, la sugerencia sería averiguarlo entonces primero. Y si es necesario que repases las bases de POO, pues adelante, partir desde ahí.

Por la forma en que describes el problema, no pareces estar muy preparado para llevar a cabo la reorganización de código que señalas.

Pero no te desanimes. Entre estos foros, la estupenda ayuda de las versiones decentes de Delphi y un montón de tutoriales y libros que hay por ahí lo lograremos. :)

Pregunta con confianza (temas nuevos en hilos nuevos, de preferencia).

Al González.

Robin1 30-11-2009 07:46:57

Mil gracias por responder.
 
Muchas gracias, por ayudarme.

Verás, no encontré mucha información sobre el tema específico que buscaba, de modo que realicé algunas pruebas, hasta dar yo mismo con la solución.

Encontré que, para llamar estos procedimientos, desde otros, los llamaba por su nombre, y agregaba (Sender);

Funcionó de maravilla.

Ahora bien, no se si, este es un modo legal de llamar ´rocedimienros, o por el contrario, puede ser sujeto a errores.

Un gran abrazo, y nuevamente mil gracias.

Julián

rgstuamigo 30-11-2009 14:04:54

Para reducir codigo en tu aplicacion yo te recomendaria usar el componente TActionManager (pestaña Additional de la paleta), este componente te permite crear acciones que luego puedes engancharlas a cualquier evento, en el caso tuyo al evento Onclik de tu button, eso se consigue utilizando la propiedad Action de tu boton y seleccionando la accion creada en tu TActionManager.En otras palabras es como escribir un procedimiento y llamo a ese procedimiento desde cualquier parte del programa de esa manera me ahorro lineas de codigo repetitivas, pero en este caso tan solo seleccionando la accion especifica se hace todo.;).
Hechale una miradita al TActionManager y veras que tambien sirve para mejorar el aspecto visual de una aplicacion para lo cual te aconsejo un buen tutorial de dicho componente.;)
Saludos...:)


La franja horaria es GMT +2. Ahora son las 15:17:52.

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