Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2003
Avatar de rolando_s
rolando_s rolando_s is offline
Miembro
 
Registrado: oct 2003
Ubicación: Santiago Chile
Posts: 31
Poder: 0
rolando_s Va por buen camino
Post Abrir tabla desde Funtion

Trato de abrir una tatabla dentro de un funtion me dice
'undeclared identifier table1.´'
si trato fuera de la funtion funciona
donde declaro o que me falta
Gracias
__________________
www.cybervanet.cl
El matrimonio es como un submarino
puede flotar pero esta diseñado para hundirse
Responder Con Cita
  #2  
Antiguo 28-10-2003
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
Si la tabla es una componente que agregaste al formulario entonces sólo puedes acceder a ella desde el formulario, esto es, desde funciones o procedimientos (métodos) del mismo formulario.

Supongo que en tu caso, la función que mencionas está declarada independientemente del formulario.

Una solución para esto-- usar la tabla desde una función [i]que no pertenzeca al formulario[i] -- es agregar a la función un parámetro de tipo TTable:

Código:
function MiFuncion(Table: TTable; [i]más parámetros);
begin
{
  Aquí puedes usar Table
}
end;
que le asignas al momento de llamar la función:

MiFuncion(Table1);

// Saludos
Responder Con Cita
  #3  
Antiguo 28-10-2003
Avatar de rolando_s
rolando_s rolando_s is offline
Miembro
 
Registrado: oct 2003
Ubicación: Santiago Chile
Posts: 31
Poder: 0
rolando_s Va por buen camino
Cita:
Posteado originalmente por roman
Si la tabla es una componente que agregaste al formulario entonces sólo puedes acceder a ella desde el formulario, esto es, desde funciones o procedimientos (métodos) del mismo formulario.

Supongo que en tu caso, la función que mencionas está declarada independientemente del formulario.

Una solución para esto-- usar la tabla desde una función [i]que no pertenzeca al formulario[i] -- es agregar a la función un parámetro de tipo TTable:

Código:
function MiFuncion(Table: TTable; [i]más parámetros);
begin
{
  Aquí puedes usar Table
}
end;


solo tengo 1 form, una tabla pardox7 en el form estan los compomentes datasounce1 table1
si table1.open;  desde un boton ok
si lo llamo dentro de una de las funciones de este formulario alega que no esta declarado 
lo que quiero es solo tomar un dato de la tabla en este puto
no crear un funcin para manipular la tabla
que le asignas al momento de llamar la función:

MiFuncion(Table1);

// Saludos
__________________
www.cybervanet.cl
El matrimonio es como un submarino
puede flotar pero esta diseñado para hundirse
Responder Con Cita
  #4  
Antiguo 28-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Por que no nos muestras la declaracion y la funcion asi vemos que puede ser?
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #5  
Antiguo 28-10-2003
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:
Posteado originalmente por rolando_s
solo tengo 1 form, una tabla pardox7 en el form estan los compomentes datasounce1 table1
si table1.open; desde un boton ok
si lo llamo dentro de una de las funciones de este formulario alega que no esta declarado
lo que quiero es solo tomar un dato de la tabla en este puto
no crear un funcin para manipular la tabla
Entonces no debería haber ningún problema. Asegúrate de haber declarado la función "dentro" del formulario:

Código:
TForm1 = class(TForm)

public { o private}
  function TuFuncion: Tipo;
end;
y de anteponer la clase del formulario en la implementación de la función:

Código:
function TForm1.TuFuncion: Tipo;
begin
end;
// Saludos
Responder Con Cita
  #6  
Antiguo 28-10-2003
Avatar de rolando_s
rolando_s rolando_s is offline
Miembro
 
Registrado: oct 2003
Ubicación: Santiago Chile
Posts: 31
Poder: 0
rolando_s Va por buen camino
Unhappy

Cita:
Posteado originalmente por roman
Entonces no debería haber ningún problema. Asegúrate de haber declarado la función "dentro" del formulario:

Código:
TForm1 = class(TForm)

public { o private}
  function TuFuncion: Tipo;
end;
y de anteponer la clase del formulario en la implementación de la función:

Código:
function TForm1.TuFuncion: Tipo;
begin
end;
la funcion es funcionando OK sin la tabla dentro
Los llamados a la tabla fuera de la funcion ok

pero dentro de la funcion no


type
Treg = Record
Fecha, horario:TDateTime;
Ano, Mes, Dia, Hora, Minuto, Segundo, MSegundo :Word;
Hora_c, Dia_c, existe : String;

Function Horarios: Treg;
var
H: TReg;
DateTime : TDateTime;
begin
DateTime := Time;
//etc etc
end;

procedure TTiempo.botonClick(Sender: TObject);
begin
Table1.Open;
//
// leer un un dat para comparar con el resto si lo ago dentro de la funcion alega
//
Table1.Close;
H1:=horarios;
Label1.Caption:= H1.Dia_c+'/'+H1.Hora_c ;
// etc etc
end;

esto funcona

y no me deja funtion tform1.horarios:treg;

Disculpa las molestias y muchas gracias

// Saludos
__________________
www.cybervanet.cl
El matrimonio es como un submarino
puede flotar pero esta diseñado para hundirse
Responder Con Cita
  #7  
Antiguo 28-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Por lo que estas poniendo no estas declarando dentro del Form la funcion, mira lo que roman te indico

deberia estar definida dentro de la clase TForm1 y cuando la implementas debe ser
Código:
function Tform1.horarios:Treg;
Debes tener en cuenta que una funcion tiene una declaracion y una implementacion , como te indico roman.
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #8  
Antiguo 28-10-2003
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
Antes que nada te pido de favor que ya no incluyas todo el texto en tus mensajes pues se hacen innecesariamente largos, y por favor deja tus comentarios fuera de la etiqueta QUOTE. Es muy pesado leer todo en negritas.

Ahora bien, del código que mandas es difícil deducir qué es lo que sucede ya que hay referencias que nos son claras.

Por una lado tienes el evento

procedure TTiempo.botonClick(Sender: TObject);

que genera la impresión de que tu formulario se llama "Tiempo":

Código:
type
  TTiempo = class(TForm)
  ...
  end;
Sin embargo, después mencionas que tform1.horarios:treg no funciona; y de aquí da la impresión de que el formulario es Form1 y no Tiempo.

Por otra parte, en TTiempo.botnClick tienes la asignación

H1:=horarios;

pero horarios es una función!

Y finalmente, la función Horarios está suelta, no pertenece a ningún formulario y, como te mencioné en el mensaje anterior, debes asegurarte que tu función (Horarios) sea realmente un método del formulario, tanto que esté declarado dentro de la clase del formulario como que su implementación esté anteceidad del nombre de la clase del formulario.

// Saludos
Responder Con Cita
  #9  
Antiguo 04-11-2003
Avatar de rolando_s
rolando_s rolando_s is offline
Miembro
 
Registrado: oct 2003
Ubicación: Santiago Chile
Posts: 31
Poder: 0
rolando_s Va por buen camino
Cita:
roman comentó:
Antes que nada te pido de favor que ya no incluyas todo el texto en tus mensajes pues se hacen innecesariamente largos, y por favor deja tus comentarios fuera de la etiqueta QUOTE. Es muy pesado leer todo en negritas.

Ahora bien, del código que mandas es difícil deducir qué es lo que sucede ya que hay referencias que nos son claras.

Por una lado tienes el evento

procedure TTiempo.botonClick(Sender: TObject);

que genera la impresión de que tu formulario se llama "Tiempo":

Código:
type
  TTiempo = class(TForm)
  ...
  end;
Sin embargo, después mencionas que tform1.horarios:treg no funciona; y de aquí da la impresión de que el formulario es Form1 y no Tiempo.

Por otra parte, en TTiempo.botnClick tienes la asignación

H1:=horarios;

pero horarios es una función!

Y finalmente, la función Horarios está suelta, no pertenece a ningún formulario y, como te mencioné en el mensaje anterior, debes asegurarte que tu función (Horarios) sea realmente un método del formulario, tanto que esté declarado dentro de la clase del formulario como que su implementación esté anteceidad del nombre de la clase del formulario.

// Saludos
si Horarios es una funcion que regresa una serie de parametros
esta funcion esta en el mismo formulario que el resto (el from1 solo muestra una foto y una etqueta no parcipa de el resto de la funcion)
La funcion trabaja sin problemas pero cada vez que lallamo tengo que abrir la table1 leer un dato pasarselo a la funcion esta lo prosesa y todo oK.
lo que queiro es
Table1.Open;
Varxx:=Table1.FieldByName('DiaEntrada').AsInteger;
code
code
Table1.close;

Pero dentro de la funcion

no afuera
Por que la llamo desde 35 puntos en este form

y cada ves que la llamo dentro reclama

la unica explicacion que encuentro es que este en el orden de esto.

type
Treg = Record
Fecha, horario:TDateTime;
Ano, Mes, Dia, Hora, Minuto, Segundo, MSegundo :Word;
Hora_c, Dia_c, existe : String;
end;
TTiempo = class(TForm)
boton: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Table1: TTable;
DataSource1: TDataSource;

estube registrando los foros antiguos y no encuentro ningun llamado a tablas dentro de funciones.
gracias de antemano.
__________________
www.cybervanet.cl
El matrimonio es como un submarino
puede flotar pero esta diseñado para hundirse
Responder Con Cita
Respuesta



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 10:53:22.


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
Copyright 1996-2007 Club Delphi