读书人

大家帮小弟我看看 小弟我错在哪里了

发布时间: 2012-02-13 17:20:26 作者: rapoo

大家帮我看看 我错在哪里了
我想实现一个登陆前 菜单默认是灰色的 登陆后是可用的 但是不知道为什么 登陆后菜单仍然是灰色的 大家帮我看看错在哪了呢
#include "Main.h"
#include "Login.h"

这个是MAIN
void __fastcall TfmMain::FormPaint(TObject *Sender)
{
if(fmLogin-> Set > 0)
{
mnuInfo->Enabled = true;
mnuHotel->Enabled = true;
mnuRoomStautsr->Enabled = true;
mnuExit->Enabled = true;
N1->Enabled = true;
}
else
{
mnuInfo->Enabled = false;
mnuHotel->Enabled = false;
mnuRoomStauts->Enabled = false;
mnuExit->Enabled = false;
N1->Enabled = false;
}
if(fmLogin->qx>0)
{
N3->Enabled = true;
}
else
{
N3->Enabled = false;
}
}
这个是登陆代码一部分
#include "Login.h"
#include "Main.h"
void __fastcall TfmLogin::Button1Click(TObject *Sender)
{
int count = 0;
if(Edit1->Text =="" || Edit2->Text =="")
{
ShowMessage("用户名或密码不能为空!");
return;
}
Query1->SQL->Clear();
Query1->SQL->Add("select count(*) as 数量");
Query1->SQL->Add("from 管理员信息 ");
Query1->SQL->Add("where 用户名=:id and 密码=:pwd and 权限级别=:qx");
Query1->Params->Items[0]->AsString = Edit1->Text.Trim() ;
Query1->Params->Items[1]->AsString = Edit2->Text.Trim() ;
Query1->Params->Items[2]->AsString = ComboBox1->Text.Trim();
Query1->ExecSQL();
Query1->Open();
count = Query1->FieldByName("数量")->AsInteger;
Query1->Close();

if(count>0)
{
Set = 1;
Edit1->Text ="";
Edit2->Text ="";
if(ComboBox1->Text=="超级管理员")
{
qx = 1;
}
this->DestroyWnd();
ShowMessage("登陆系统成功!");
}
else
{
Edit1->Text ="";
Edit2->Text ="";
ShowMessage("用户名或密码不正确!");
}
}
//-----------------------

[解决办法]
我看错了,应该是TfmMain的Refresh();
(你的TfmMain名我没看到,如果是fmMain,可写
TfmMain->Refresh();
[解决办法]
ShowMessage("登陆系统成功!"); //下面增加以下代码

TfmMain* fmMain = (TfmMain*)(Application->FindComponent("fmMain "));

if (fmMain != NULL)
{
fmMain->Refresh();
}

读书人网 >C++ Builder

热点推荐