Ver Mensaje Individual
  #1  
Antiguo 11-11-2015
Yugo Yugo is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 25
Reputación: 0
Yugo Va por buen camino
Obtener valor de una propiedad de una Tabla en un Form1 desde otro Form2

Buenas, la duda que tengo es la siguiente: Tengo un Form1 donde coloco los componentes TTable (TablaAbierta), TDataSource (dsTablaAbierta), TDBGrid, TButton1 y TButton2.

Trato de abrir una tabla paradox seleccionándola desde un TOpenDialog que aparece tras pulsar el TButton1, para que sea visualizada en el TDBGrid y al pulsar el TButton2 se abra un TForm2 donde hay colocado un TEdit para capturar el nombre de la tabla abierta en el TForm1 mediante... Edit1->Text = Form1->TablaAbierta->TableName;

Pero algo falla y no soy capaz de verlo...


Código:
TOpenDialog *SelecTabla;
  SelecTabla = new TOpenDialog(this);

  String nomTabla;

  //Configuración del objeto TOpenDialog
  SelecTabla->Title = "Seleccionar la Tabla que desea abrir...";
  SelecTabla->Filter = "Tabla de Bases de Datos (*.DB) | *.DB";
  SelecTabla->Options << ofHideReadOnly << ofFileMustExist << ofEnableSizing;
  //Asignamos el directorio inicial por defecto del cuadro de diálogo
  SelecTabla->InitialDir = ExtractFilePath(Application->ExeName);

  if(SelecTabla->Execute())
  {
    nomTabla = ExtractFileName(SelecTabla->FileName); //contiene "nombreTabla.Extension"

    //Indicar la ruta donde reside la tabla que deseamos abrir
    TablaAbierta->DatabaseName = ExtractFilePath(SelecTabla->FileName);

    //Asignamos el nombre de la tabla que deseamos visualizar:
    TablaAbierta->TableName = nomTabla;  //pasar el nombre de la tabla CON [.DB]

    //Activar la tabla para trabajar con ella:
    TablaAbierta->Active = true; //Activar por último la tabla

    //Especificamos el conjunto de datos (TablaAbierta) que servirán de fuente de
    //datos a los objetos DBGrid y DBNavigator para visualizarlos en pantalla:
    dsTablaAbierta->DataSet = TablaAbierta;

    //Configuramos las propiedades del DBGrid y DBNavigator para enlazarlos con
    //Table1 y los hace visibles al usuario.
    DBGrid1->DataSource = dsTablaAbierta;
    DBGrid1->Visible = true;
    DBNavigator1->DataSource = dsTablaAbierta;
    DBNavigator1->Visible = true;


  }
  else //SelecTabla->Execute()==false
  {
    //Mensaje que aparece en caso de pulsar CANCELAR ó la 'X' de CERRAR ventana
    MessageDlg("Operación de apertura de tabla cancelada.",
                 mtWarning, TMsgDlgButtons() << mbOK, 0);
  }
Responder Con Cita