Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Cita:
Empezado por roman
¿De qué manera estás intentando la última asignación que te indiqué?

No lo puedes hacer con un simple

Código:
with TTabSheet.Create(Self)
ya que necesitas una referencia al objeto para poder asignarlo. Dicho de otra forma necesitas una variable para almacenar el objeto que te devuelve Create.

// Saludos
Intento asignarlo de la sgte manera:
Código:
begin
    TTabSheet.Create(Self); 
     TMemo.Create(Self);
    with TTabSheet.Create(Self) do
    begin
      PageControl := PageControl1;

    end;
     Memo1.Parent := TabSheet1;
end;
Se crea el TabSheet pero no está el Memo en su interior.
Un saludo y disculpa la insistencia; estoy en los comienzos.
Responder Con Cita
  #2  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Es que TabSheet1 no apunta a ninguno de los dos tabshets recien creados...

tenes que hacer que el parent sea el tabshet que queres que sea su contenedor...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-02-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Cita:
Empezado por jachguate
Es que TabSheet1 no apunta a ninguno de los dos tabshets recien creados...

tenes que hacer que el parent sea el tabshet que queres que sea su contenedor...

Hasta luego.

Eso es lo que precisamente no sé hacer. Por eso les pido que lo que me están explicando lo acompañen de algún código de ejemplo; o corrijan el mío.
Me doy cuenta que mi error es de concepto. Eso es lo que más me preocupa.
No tengo urgencia. Lo que quiero es aprender.
Un saludo y gracias por ayudarme.
Responder Con Cita
  #4  
Antiguo 27-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Código:
var
   MiHoja: TTabSheet;
begin
   MiHoja :=  TTabSheet.Create(Self)
   MiHoja.PageControl := PageControl1;

   with TMemo.Create(Self) do
       Parent := MiHoja;
end;
Eso es todo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 28-02-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Hola Eduarcol:
Estoy estudiando tu código que me ha sido muy útil:
Código:
var
   MiHoja: TTabSheet;
begin
   MiHoja :=  TTabSheet.Create(Self);
   MiHoja.PageControl := PageControl1;

   with TMemo.Create(Self) do
       Parent := MiHoja;
end;
ESto permite crear tanto un TabSheet como un Memo dentro del mismo.
Ahora Bien: El Memo creado no toma las dimensiones del TabSheet.
La referencia que da Delphi dice que la propiedad Width no funciona para los Controles contenidos en los TabSheet creados en tiempo de ejecución.
Te agradeceré me orientes para conseguir que el Memo creado tome las dimensiones del TabSheet.
Un saludo y hasta pronto
Responder Con Cita
  #6  
Antiguo 28-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Dale valor a la propiedad Align a alClient del TMemo

Código:
....
with TMemo.Create(Self) do
  Parent := MiHoja;
  Align := alClient;
Responder Con Cita
  #7  
Antiguo 28-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Ubica la propiedad Align del Memo y colocala ALClient
Align := AlClient;

Esta propiedad tiene los valores

Código:
    AlClient :=  Se alinea en toda el area del contenedor
    AlRigth  :=  Se alinea a la derecha del area del contenedor
    AlLeft   :=  Se alinea a la izquierda del area del contenedor
    AlTop   :=  Se alinea en la parte superior del area del contenedor
    AlBottom   :=  Se alinea en la parte inferior del area del contenedor
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 28-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Como que respondimos al mismo tiempo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 01-12-2010
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Poder: 0
Rowerto Va por buen camino
Hola de nuevo. Aunque no posteo mucho si que entro casi a diario al foro para resolver mis dudas.

En esta ocasion resubo este hilo (bastante antiguo por lo que veo, pero lo prefiero a crear otro nuevo, razones obvias), porque la duda que tengo va en la linea. Tenia en un primer momento la misma duda que tenia esocrates, la de como crear un tabsheet y dentro de este una stringgrid en tiempo de ejecucion y lo dicho, gracias a la ayuda del propio Delphi y de este hilo lo he logrado.
Pero a raiz de esto, tengo otra duda. Y os explico un poco de como va el programa en el que estoy currando ahora para que me podais ayudar mejor.

Yo abro un/os fichero/s y recojo en un primer momento ciertos datos que necesito.
Esta info es el nombre de un sitio, su matricula y el dia de "autos" (como en cualquier producto: tipo, referencia y dia).
Si este sitio no tiene pestaña propia, debo crear una (en tiempo de ejecucion) con su propio stringgrid asociado, y de existir debo pasar la hoja de ese sitio y por ende su stringgrid. Una vez hecho esto relleno la grid con los datos del fichero abierto.
Yo consigo hacerlo todo salvo pasar el stringgrid asociado a la hoja con el sitio.
Os paso algo de codigo para que se entienda "mejor":

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var   tabs : ttabsheet;
      stri : tstringgrid;   //hay mas variables, pero pongo solo las que creo que os seran necesarias saber el tipo para entenderlo
begin
  memo1.Lines.Clear;  //en este memo (se que se puede hacer con otras cosas) meto los nombres de los ficheros que abro desde el dialogo
          //de apertura
  opendialog1.Execute;
  memo1.Lines :=opendialog1.Files;
  for y:=0 to memo1.Lines.Count-1 do  //recorro el memo para abrir todos los ficheros seleccionados antes
  begin
    memo2.Lines.LoadFromFile(memo1.Lines[y]);//copio el contenido de cada fichero independiente

    {recojo la informacion que necesito para ver si ya existe, aunque tampoco lo pongo
     matricula y centro que son unas strings}

    compara:=0;
    for z:=0 to pagecontrol1.PageCount-1 do    //miro pagina por pagina el caption y de ser igual paso en compara el numero
    begin
      if comparestr(trim(PageControl1.Pages[z].Caption), trim(trim(centro)+trim(matricula)))=0
      then begin
        compara:=z+1;    //pasa el numero de pagina (o 0 en su defecto si llega al final y no encuentra ninguno)
      end;
    end;       //posiblemente este bucle se pueda juntar con el proximo IF, cosa a revisar cuando todo funcione

    if compara - 1  = 0   //si no encuentra un caption igual creo tanto la tab como la grid (y sus dimensiones)
    then begin
      tabs := TTabSheet.Create(PageControl1);
      tabs.PageControl := PageControl1;
      tabs.Name := 'TabSheet'+inttostr(pagecontrol1.PageCount+1);
      memo3.Lines.Add(tabs.name);
      tabs.Caption := trim(centro)+trim(matricula);
      stri := tstringgrid.Create(self);
      stri.Parent := tabs;
      stri.Name := 'StringGrid'+inttostr(pagecontrol1.PageCount+1);
      stri.Visible:=true;
      stri.ColCount:=8;
      stri.FixedCols:=0;
      stri.RowCount:=3;
      stri.FixedRows:=2;
      stri.Width:=529;
      stri.Height:=601;
      stringcabecera(stri);
    end
    else begin     // y si lo encuentra le paso la pagina y la grid
      tabs := PageControl1.Pages[z];
      stri := ///////////AQUI LO QUE ME FALTA que es el grid que hay en ese pagecontrol1.pages[z]
    end;

    {aqui viene todo el troncho de rellenado de datos que elimino para que se entienda mejor el resto}

  pagecontrol1.ActivePage:=tabs; //activo la pagina (sea nueva o no)

  end;
end;

Espero que me podais ayudar, porque no se ni por donde empezar.
Perdon por el tronchazo que os acabo de soltar y gracias de antemano!!
Responder Con Cita
  #10  
Antiguo 27-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por esocrates
Me doy cuenta que mi error es de concepto.
Y precisamente por eso no te escribimos el código. No lo tomes a mal, pero si te escribimos el código tal cual entonces no vas a entender el concepto.

Para que el Memo aparezca dentro del TabSheet debes asignarle dicho TabSheet a su propiedad Parent:

Memo.Parent := tab sheet

Lo que tienes que contestarte es: ¿Quién es dicho tab sheet?

Una vez que lo sepas sabrás también qué valor debe tener TabSheet1 antes de asignárselo a Memo1.Parent.

// Saludos
Responder Con Cita
  #11  
Antiguo 27-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Upsss, perdon como que eche a perder la clase
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #12  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Está bien. Ahora como ha apuntado roman... es decisión del "alumno" que hacer con la información obtenida.

Has escuchado alguna vez esto:

Cita:
Empezado por Confucio
No le des un pez.. mejor enseñale a pescar?
Si esocrates o cualquier otro ha de permanecer en el mundo de la informática, mejor es que se acostumbre a buscar en la documentación, leer libros, y quemarse las pestañas (yt las neuronas) delante del monitor, intentando y consiguiendo, sobre todo, mejorar sus técnicas de investigación y su habilidad para encontrar información.

La sintaxis... eso es cosa simple. Las ideas, esas si que son complejas....

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #13  
Antiguo 27-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Cita:
Empezado por jachguate
La sintaxis... eso es cosa simple. Las ideas, esas si que son complejas....

De hecho yo pienso que todos los programadores deberian estar a nivel en conocimientos que los desarrolladores y los diseñadores de sistemas, asi los programas mejorarian su calidad, porq recuerden q:
Cita:
Todo Diseñador de Sistemas puede Programar, Pero no todo Programador puede diseñar Sistemas.
Deberiamos cambiar eso
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 27-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, mi respuesta llegó un poco después de la de eduarcol así que será ya tu decisión tratar de entender el concepto y no sólo copiar el código.

// Saludos
Responder Con Cita
  #15  
Antiguo 27-02-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Cita:
Empezado por roman
Bueno, mi respuesta llegó un poco después de la de eduarcol así que será ya tu decisión tratar de entender el concepto y no sólo copiar el código.

// Saludos
No sólo que no lo tomo a mal sino que estoy muy agradecido con Uds.
Utilizar código hecho por los que más saben es una menera de empezar en esto, así creo.
Mi intención siempre ha sido entender el concepto. Creo que es el espíritu de este Foro y la gran ayuda que brinda.
Hoy Uds. me han dado mucho para empezar a entender un poco todo esto.
Un saludo y hasta pronto

Última edición por esocrates fecha: 27-02-2004 a las 22:40:31.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:53:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi