Unit1.h
Código PHP:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMainMenu *MainMenu1;
TMenuItem *Archivo1;
TMenuItem *Guardar1;
TMenuItem *N1;
TMenuItem *Salir1;
TMenuItem *E1;
TMenuItem *DeshacerCrtlz1;
TMenuItem *RehacerCrtlShitfZ1;
TMenuItem *N2;
TMenuItem *Cortar1;
TMenuItem *Copai1;
TMenuItem *PegarCtrlV1;
TMenuItem *Abrir1;
TPageControl *PageControl1;
TTabSheet *Cuentas;
TTabSheet *Estado;
TEdit *cuentains;
TButton *Button1;
TLabel *Label2;
TLabel *Label3;
TMenuItem *Configuarcin1;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TMenuItem *InformedeCuentas1;
TGroupBox *GroupBox1;
TLabel *Label1;
TGroupBox *GroupBox2;
TComboBox *ComboBox1;
TLabel *Label8;
TButton *Button2;
TButton *Button3;
TMemo *Memo1;
void __fastcall Abrir1Click(TObject *Sender);
void __fastcall Salir1Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
//estructura y funcion para cargar un archivo
//a lista.
struct cuenta
{
int id;
char cta[30];
};
void elementos(int &b);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Unit1.cpp
Código PHP:
//---------------------------------------------------------------------------
//include <ctype.h>
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
#include "struct.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Abrir1Click(TObject *Sender)
{
FILE *fp,*fr;
int b;
if((fp=fopen("C:\\cuentas.dat","a+b"))==NULL)
{
//ShowMessage("ERROR MAn");
MessageBox(fp,"Error al abrir archivo","Error",1);
}
else
{
TForm1::elementos(b);
PageControl1->Visible=True;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Salir1Click(TObject *Sender)
{
exit(0);
}
//---------------------------------------------------------------------------
void TForm1::elementos(int &b)
{
//Función para saber los elementos que hay en el
//archivo cuentas.dat
FILE *fp;
cuenta c;
b=0;
if((fp=fopen("C:\\cuentas.dat","rb"))==NULL)
{
ShowMessage("Error al abrir el archivosss");
exit(0);
}
else
{
fread(&c,sizeof(c),1,fp);
while(!feof(fp))
{
b++;
fread(&c,sizeof(c),1,fp);
}
}
}
//---------------------------------------------------------------------------
//ShowMessage(ComboBox1->ItemIndex);
//Para tomar el item seleccionado del ComboBox
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int b;
TForm1::elementos(b);
ShowMessage(b);
}
//---------------------------------------------------------------------------
cuentas.dat, y lo almaceno en b.
Ahora cada vez que quiera usar b en cualquier parte del programa, tengo que
invocar si o si a la funcion de la clase TForm1::elementos(b);
Lo que quiero saber si se puede hacer es cuando hago click en abrir, ya tengo
la cantidad de elementos de b, y cuando quiero hacer otra accion con otro
boton, tengo que llamar a la funcion de nuevo para que b tome el valo de
la cantidad de elementos, ahora mi pregunta es, cuando yo hago click en abrir
y guardo esa cantidad en b, desde otro boton puedo accesar a ese espacio
de memoria donde esta almacenado b, sin hacer llamado a la funcion para que
vuelva a realizar el proceso de conteo?
Espero se me entienda lo que quiero decir.
Por las dudas lo vuelvo a explicar, al abrir, la cantidad de elementos se guarda
en b, ahora desde otro boton del programa yo quiero usar b, pero sin
llamar a la funcion que hace el conteo de la cantidad de elementos del archivo.
Ahora creo que esta mas clarito, bueno espero a ver que es lo puedo hacer,
probe con asignarle un * pero tampoco no me da.
Bueno Desde ya les agradezco el tiempo y las respuestas.
Salu2