Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Recorrido por componentes (https://www.clubdelphi.com/foros/showthread.php?t=31033)

miguelml 26-04-2006 12:33:18

Recorrido por componentes
 
Hola, estoy haciendo un proyecto en Delphi 7, y tengo un problema.
Esta apliacion tiene un form con pestañas dentro (pagecontrol con tabsheets)
i cada pestaña dentro tiene un memo, lo que quiero es coger el valor del caption de cada tabsheet, i el contenido del memo.
primero recorro los tabsheets..

Código Delphi [-]
if MDIChildren[0].Components[i] is TTabSheet then
begin
    Contt.AddStrings(((MDIChildren[0].Components[i] as         TTabsheet).Components[0] as memo).Lines);
end;
Contt es una variable tstrings donde quiero meter el ontenido de cada memo de cada pestaña, como solo hay un componente en cada pestaña, pues uso components[0].
El problema es que cuando ejecuto, al llegar a esta linea, me da un error de "list index out of bonds", ya se que se debe a que me salgo de el vector, pero nose como solucionarlo, o si es codigo no es correcto.

gracias de antemano
un saludo!

Neftali [Germán.Estévez] 26-04-2006 12:43:09

¿Estás seguro de que el components[0] es el memo?
Yo utilizaría el mismo sistema que para los Tabsheets (utilizar IS).

miguelml 26-04-2006 13:23:45

hm, gracias, pero , He probado con un IS, y da el mismo tipo de error, a partir del components[0] da el error, ese, y por lo que e visto, es como si el tabsheet no supiese que tiene cosas dentro, ya que el comoponentcount da 0 aun teniendo dentro un memo.
A alguien se le ocurre como acceder los componentes (en particular un memo) dentro de un tabsheet que a su vez esta dentro de un form mdichild?


gracias

Lepe 27-04-2006 08:38:26

Si da 0 tendrás que revisar como añades los memos dentro del TabSheet, porque ahí tienes la madre del borrego ;).

Saludos

miguelml 27-04-2006 12:18:46

Ya he encontrado "La madre del borrego" jjajajaja :)
El problema era que los tabsheets no continienen nada dentro, sino que en mi caso (tabsheets con memos dentro) lo que hace es esconder o mostrar segun la pestaña activa, es decir, los memos estan directamente en el form y los tabsheet lo unico que hacen es mostrarte uno u otro.

El codigo que e usado es:

Código Delphi [-]
while i<(MDIchildren[0].componentCount) do
    begin
      if (MDIChildren[0].Components[i] is TTabSheet) and (MDIChildren[0].Components[i+1] is TSynedit) then
      begin
        Arxius.Add((MDIchildren[0].Components[i] as TTabsheet).Caption);
        Contt.Clear;
        Contt.AddStrings((MDIChildren[0].Components[i+1] as TSynedit).Lines);
      end;
      i:=i+1;
    end;

gracias a todos
un saludo!


La franja horaria es GMT +2. Ahora son las 17:02:28.

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