Ver Mensaje Individual
  #1  
Antiguo 28-11-2009
Robin1 Robin1 is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Reputación: 0
Robin1 Va por buen camino
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.
Responder Con Cita