如何访问另一个控件的指针有源码
本帖最后由 laohei0304 于 2013-03-13 11:27:22 编辑
void __fastcall TFormMaster::Button1Click(TObject *Sender)
{
//----------------------------------------------
//-打开文件复制内容至recvbuf[1024*1024]
//指向文件内容指针char* pfile
//----------------------------------------------
TStringList *Str=new TStringList();
AnsiString S; char recvbuf[1024*1024];
if (OpenDialog1->Execute())
{
Str->LoadFromFile(OpenDialog1->FileName);
S=AnsiString(Str->Text);
}
memset(recvbuf,0x00,sizeof(recvbuf));
strcpy(recvbuf,S.c_str());
char* pfile = recvbuf;
Label1Click(Sender);
}
void __fastcall TFormMaster::Label1Click(TObject *Sender)
{
//==================================================================================
//-将数据流存入结构体
//==================================================================================
memcpy(Buff16, pfile, 4); //DWORDType;记录类型
Record.Tags.Type = atol(Buff16); //Record.Tags.Type是自己定义的结构
}
这Label1里面pfile如何访问Button1的pfile所指内容。
上面的源码是不能通过编译的。这里该如何处理。
[解决办法]
pfile定义成类成员变量或全局变量
类成员变量
class TForm1 : public TForm
{
__published:// IDE-managed Components
private:// User declarations
char* pfile;
public:// User declarations
__fastcall TForm1(TComponent* Owner);
};
全局变量 在这个文件开头
char* pfile;
[解决办法]
按你的写法,pfile是个Button1Click中的本地变量,在Label1Click中未定义
pfile要定义成成员变量,在Label1Click才能访问到