PDA

Ver la Versión Completa : como llamar a un form desde una pestaña


aranel
03-10-2005, 13:29:51
HOLA!!!! Necesito saber si al crear un TPageControl con varias pestañas, es posible llamar desde cada una de ellas (TTabSheet) a un formulario, y si se puede, como se hacer, he encontrado por ahí el siguiente codigo, pero no se donde ponerlo o si funciona, por lo menos a mi no me sale nada :'(


var
aForm : TMyForm;
tabSheet : TTabSheet;
begin
//Create a new tab sheet
tabSheet := TTabSheet.Create(PageControl1) ;
tabSheet.PageControl := PageControl1;

//create a form
aForm := TMyForm.Create(tabSheet) ;
aForm.Parent := tabSheet;
aForm.Align := alClient;
aForm.BorderStyle := bsNone;
aForm.Visible := true;
tabSheet.Caption := aForm.Caption;

//activate the sheet
PageControl1.ActiveSheet := tabSheet;
end;

delphi.com.ar
03-10-2005, 13:57:29
Ese código, exepto por la última línea, tendría que funcionar sin problemas....
¿Entiendes el código que encontraste?, posiblemente habría que empezar por ahí...

roman
03-10-2005, 15:10:10
Ese código, exepto por la última línea, tendría que funcionar sin problemas....


¿Qué problema tiene la última línea?

// Saludos

dec
03-10-2005, 15:19:14
Hola,


¿Qué problema tiene la última línea?
¡Me lo quitaste de la boca! O sea, que yo tampoco veo el problema... ;)

Creo que Federico confundió la propiedad "ActiveTabSheet" con "TabIndex" (no estoy seguro de que esta última se llame así exactamente) puesto que la primera requiere un objeto "TTabSheet" (que es lo que se le da en el código de más arriba) y la segunda requiere de un "integer"... ¿me equivoco Federico? :p

delphi.com.ar
03-10-2005, 15:48:14
¿Yo estoy mal o no existe la propiedad ActiveSheet?.... Será ActivePage!

Neftali [Germán.Estévez]
03-10-2005, 15:48:55
¿Qué problema tiene la última línea? Supongo (suponer, por suponer,....) que Federico se refiere a que esa línea tal cual, da error (o debería), puesto que para ser correcta (y suponiendo lo que quería decir aranel) debería ser:


PageControl1.ActivePage := tabSheet;

y no:
PageControl1.ActiveSheet := tabSheet;

roman
03-10-2005, 15:50:48
¡Ahhhh! Yo de grande quiero tener una memoria de compilador como la de ustedes. :D

// Saludos

dec
03-10-2005, 15:54:42
Hola,

¡Y yo, yo también quiero tener esa memoriaza! :cool:

aranel
03-10-2005, 16:16:56
Entendero yo creo que lo entiendo mas o menos, lo que pasa, es que soy nueva programando en delphi, y lo que no se tampoco es donde tengo que poner este codigo para que se ejecute bien o algo, porque no se dentro de que metodo habria que ponerlo. Y tendría que haber un metodo de estos para cada pestañita para que en cada una, se ejecutara un form distinto, no? No se si entendeis lo que estoy preguntando, lo que yo necesitaria es ver un ejemplo de donde se podría ese codigo, porque yo así directament eno se que hacer con él :$

Muchas gracias

delphi.com.ar
03-10-2005, 16:25:45
Entendero yo creo que lo entiendo mas o menos, lo que pasa, es que soy nueva programando en delphi, y lo que no se tampoco es donde tengo que poner este codigo para que se ejecute bien o algo...
Es que esto dependerá de tu lógica, cuándo es que quieres que cree la nueva pestaña,.

Y tendría que haber un metodo de estos para cada pestañita para que en cada una, se ejecutara un form distinto, no?
Yo evitaría repetir código creando un procedure, donde pases como parámetro el Form, y a lo sumo el page control....

¿Porqué tienes las páginas separadas en Forms?


PD: No es memoria de compilador, es que me llamó la atención y compilé :D

aranel
03-10-2005, 16:41:17
Tengo las paginas separadas en form porque me parecia la mejor opción, aunque puede que no lo sea. Te lo cuento, tengo que hacer una aplicación que englobe como 3 aplicaciones: un editor, un interprete y un simulador, entonces el simulador con la interfaz grafica y todo está ya echo. Entonces se me ha ocurrido que podria, hacer 3 paginas con pestañas de esas, y llamar en la primara, al form que implementa el simulador, y ya en las otras dos pestañas implemetar yo el editor y el interprete. Mi problema es que en toda la carrera no he hecho nada en delphi, y ahora en proyecto lo tengo que hacer en él y mas o menos he conseguido defenderme, pero ha veces hay cosas que puede que sean muy tontas pero no las veo. Además estoy acostumbrada a programar de otra forma y me cuesta bastante pensar en delphi. Que te parece la idea de hacerlo así? o hay otra forma mejor?

delphi.com.ar
03-10-2005, 16:50:00
Me parece bien, alguna vez lo hice simplemente para que no tener un terrible aglomeramiento de código en un solo form. Delphi te da otra posivilidad, mas visual, que puede ser el uso de Frames.
Igualmente en tu caso el código que tienes te tiene que funcionar, simplemente lo tendrías que repetir por cada form (o iterar :D)

Saludos!

dec
03-10-2005, 17:04:34
Hola,

A ver si lo que he preparado se aproxima un tanto a lo que precisas.

aranel
03-10-2005, 17:30:26
Muchisimas gracias, de verdad!!!! Es justo lo que necesitaba ver, es uqe no entendia como se podia hacer eso y con el ejemplo me ha quedado clarisimo.
Muchas gracias de nuevo, bueno, y a todos los que habeis intentado ayudarme, porque a veces me encuentro un poco perdida en el mundo este del delphi, y con vuestra ayuda se me hace un poco mas llevadero.
Besitos!