Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   como llamar a un form desde una pestaña (https://www.clubdelphi.com/foros/showthread.php?t=25760)

aranel 03-10-2005 13:29:51

como llamar a un form desde una pestaña
 
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 :'(

Código Delphi [-]
 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

Cita:

Empezado por delphi.com.ar
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,

Cita:

Empezado por roman
¿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

Cita:

Empezado por roman
¿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:

Código Delphi [-]
    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

Cita:

Empezado por aranel
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,.

Cita:

Empezado por aranel
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

1 Archivos Adjunto(s)
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!


La franja horaria es GMT +2. Ahora son las 00:21:26.

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