Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problema al crear tabsheet (https://www.clubdelphi.com/foros/showthread.php?t=30485)

Choclito 07-04-2006 15:33:31

problema al crear tabsheet
 
hola amigos del foro mi problema es el siguiente:
En tiempo de ejecucion quiero crear n tabshet que la creacion sea la cantidad de registros de un query
el codigo en el oncreate del form es el siguiente

Código Delphi [-]
while modulo_cita.MDOQ_Doctor.Eof do
begin
 Aux := TTabSheet.Create(self);
     Aux.Name := modulo_cita.MDOQ_Doctor.Fields[0].asstring;
     Aux.PageControl := f_cita.PageControl1;
     Aux.Caption := modulo_cita.MDOQ_Doctor.Fields[1].asstring;;
     aux.Visible:=true;
     f_cita.PageControl1.ActivePageIndex := (f_cita.PageControl1.PageCount - 1);
     modulo_cita.MDOQ_Doctor.Next;
end;

pero no hace nada... quiero q en cada tabsheet este el nombre del doctor pero no hace nada no crea ni un tabsheet, quiero crear n tabsheet pero no hace nada , como arreglo esto?????
como siempre les estare muy agradecido por su valiosa ayudaaaaaa

alapaco 07-04-2006 15:39:59

El código parece funcionar...
Estas seguro que el query MDOQ_Doctor trae datos ???

Choclito 07-04-2006 16:06:15

gracias por responder
 
muchas gracias por la respuesta pero te cuento q el query trae datos pues coloque un dblookcombobox y ahi me muestra ,cual puede ser otra forma de hacer esto , me explico mejor.. tengo un query con datos de los doctores nombres y codigo, lo que quiero es q en cada tabsheet del page control este los nombres de los doctores registrados , todo esto con el fin de mostrar luego las citas de pacientes por doctor
les estare muy agradecido por las respuestas

alapaco 07-04-2006 16:11:52

Insisto, probé el código y me funcionó.

Esta línea:
f_cita.PageControl1.ActivePageIndex := (f_cita.PageControl1.PageCount - 1);
podría ponerse fuera del while. (igual no es el problema por el cual no se muestra nada.)

Podrías copiar TODO el código (incluyendo lo que está arriba y abajo del while ??

Choclito 07-04-2006 16:20:34

rarisimo pero no da
 
te cuento q ahora probe en un boton q puse en el form y tampoco no da:(
el codigo es el siguiente:

Código Delphi [-]
procedure TF_Cita.Button2Click(Sender: TObject);
var Aux:TTabSheet;
begin
modulo_cita.MDOQ_Doctor.Open;
while modulo_cita.MDOQ_Doctor.Eof of
begin
 Aux := TTabSheet.Create(self);
     Aux.Name :=modulo_cita.MDOQ_Doctor.Fields[0].asstring;
     Aux.PageControl := PageControl1;
     Aux.Caption :=modulo_cita.MDOQ_Doctor.Fields[1].asstring;;
     aux.Visible:=true;
     PageControl1.ActivePageIndex := (PageControl1.PageCount - 1);
     modulo_cita.MDOQ_Doctor.Next;
end;
end;

hay otra forma de hacer ??? te estare agradecido por tu ayuda

alapaco 07-04-2006 16:22:49

Pusiste un punto de control en la linea:
Aux := TTabSheet.Create(self);

Y pasó por ahí ??

Choclito 07-04-2006 16:26:38

no lo puse
 
no puse nada mas el codigo q puse es tal como lo coloque.... hay otra forma de caminar en un query y esos datos colocarlos a los tabsheet del pagecontrol? muchas gracias por responder

Lepe 07-04-2006 16:36:30

Creo que te falta:

Aux.Parent := Pagecontrol1

Realmente no he mirado Aux.Pagecontrol := Pagecontrol1 qué es lo que hace, pero creo que es Parent la que debes tocar.

SAludos

Choclito 07-04-2006 16:45:40

sigue el problema
 
les cuento q en el form coloque un lookcombobox y muestra los datos del query luego tambien coloque
Aux.Parent := Pagecontrol1;
pero tampco da .... pense q el problema en el while, asi q utilice un for del 1 al 5 y me crea los tabsheet. la verdad nose donde estoy errando para q no pueda crear los tabsheet con los datos del query
gracias por la ayuda amigos del foro

alapaco 07-04-2006 17:15:41

Repito, pusiste un punto de control sobre la primer linea que esta dentro del while ??

Debugueaste el while ?

Ruben_Cu 08-04-2006 19:00:48

Hola alapaco, el código debe funcionar yo lo estructuraría de la siguiente forma:
Código Delphi [-]
procedure TF_Cita.Button2Click(Sender: TObject);
var Aux:TTabSheet;
begin
  With modulo_cita.MDOQ_Doctor do begin
        open;
        while not eof do begin
        Aux := TTabSheet.Create(self);
        with Aux do begin
              Name :=Fields[0].asstring;
              PageControl := PageControl1;
              Caption :=Fields[1].asstring;;
              //aux.Visible:=true; true es el valor de la propiedad por defecto por tanto no es necesaria la declaración
              PageControl1.ActivePageIndex := (PageControl1.PageCount - 1);
              end;
        Next;
        end;
   end;
end;

Este procedimiento debe trabajarte bien es lo mismo que tienes pero mas simplificado, no obstante debes fijarte si el query está cerrado cuando lo mandas a abrir con Open puesto que si ocurre que ya esta abierto el puntero del query está en el último registro tendrías los registros resultantes pero no te crearía ningún TabSheet en ese caso tendrías que sustituir Open por First, esto opino yo que puede ser la causa de lo que te ocurre.
Saludos


La franja horaria es GMT +2. Ahora son las 14:10:53.

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