全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:877
推到 Plurk!
推到 Facebook!

加入新Form並設為首MDIChiled出問題了

尚未結案
jay26tw
一般會員


發表:8
回覆:8
積分:3
註冊:2004-02-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-27 16:44:30 IP:61.30.xxx.xxx 未訂閱
本想說設計一個登入畫面 先將登入畫面插入變成第一個Form之後 若在資料庫Match之後就把Login畫面設成Visible=False 再連接到下一個系統主畫面 但是只有主畫面可以開啟 原本設定成FormChild的全部出現問題無法開啟 是什麼問題ㄚ??? 我是希望開啟程式前先登入 但是都沒看到有人討論 我該如何撰寫??? 還是BCB已經有現成元件可以用ㄚ??? 只知道有Mask可以利用>.<" ~新手上路問題多~敬請多多包涵~ 我是新手,但不是永遠的新手 只要努力不懈,相信成功就在眼前 發表人 - taishyang 於 2004/02/27 16:52:13
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-27 19:08:18 IP:61.218.xxx.xxx 未訂閱
splashform.cpp
//---------------------------------------------------------------------------    #include 
#include "splashform.h"
#pragma hdrstop
USERES("splashscreen.res");
USEFORM("mainform.cpp", Form1);
USEFORM("splashform.cpp", Splash);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try{//outer finally
        try{
            Application->Initialize();
            Splash = new TSplash(NULL);
            Splash->Show();
            Splash->Repaint(); //主Form產生前先秀出ID & Password Check 表單
            Application->CreateForm(__classid(TForm1), &Form1);
            Application->Run();
            }
        catch (Exception &exception){
            Application->ShowException(&exception);
            }
        }
    __finally{
        if(Splash)
            delete Splash;
        }
    return 0;
}
//---------------------------------------------------------------------------
/*生活是一種藝術,用心生活才能享受生活*/
kwu
中階會員


發表:10
回覆:57
積分:58
註冊:2003-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-29 02:25:10 IP:61.226.xxx.xxx 未訂閱
引言: 本想說設計一個登入畫面 先將登入畫面插入變成第一個Form之後 若在資料庫Match之後就把Login畫面設成Visible=False 再連接到下一個系統主畫面 但是只有主畫面可以開啟 原本設定成FormChild的全部出現問題無法開啟 是什麼問題ㄚ??? 我是希望開啟程式前先登入 但是都沒看到有人討論 我該如何撰寫??? 還是BCB已經有現成元件可以用ㄚ??? 只知道有Mask可以利用>.<" ~新手上路問題多~敬請多多包涵~ 我是新手,但不是永遠的新手 只要努力不懈,相信成功就在眼前 發表人 - taishyang 於 2004/02/27 16:52:13
回應文章內容 jay26tw你好: BCB 有一個 TLoginDialog 可以用 請在 Project1.cpp 中加入下面程式碼紅色的部份
//---------------------------------------------------------------------------    #include 
#include 
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
TLoginDialog *LoginForm;
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();                     LoginForm = new TLoginDialog(Application);
                 LoginForm->ShowModal();
                 /* 下列檢查密碼方式請自行修改 */
                 if ((LoginForm->UserName->Text != "user") || (LoginForm->Password->Text != "0000"))
                 {
                   delete LoginForm;
                   return 0;
                 }
                 delete LoginForm;

                 Application->CreateForm(__classid(TForm1), &Form1);
                 Application->Run();
        }
        catch (Exception &exception)
        {
                 Application->ShowException(&exception);
        }
        catch (...)
        {
                 try
                 {
                         throw Exception("");
                 }
                 catch (Exception &exception)
                 {
                         Application->ShowException(&exception);
                 }
        }
        return 0;
}
//---------------------------------------------------------------------------
erosme
初階會員


發表:5
回覆:44
積分:29
註冊:2002-12-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-29 12:41:28 IP:218.166.xxx.xxx 未訂閱
Dear Jay26tw,    你可以用另一種簡單的方法, 就是將 Login畫面設成 FormChild. 然後在主畫面中加入 Timer , Timer 的 OnTimer Event Function 加入呼叫Login Child Form. 接著在主畫面 FormActivate 將 Timer 的 Interval = 500 ; Enabled = true. 當然和你所要的有點不太一樣. 不過你可以試試看.  
 
bool    form_create = true ;
void __fastcall TMainForm::FormActivate(TObject *Sender)
{
        if ( form_create )
        {
                form_create = false ;
                MainForm->user_Power =  0x00;
                File->Visible = false ;
                Timer1->Enabled = true ;
        }
}
//--------------------------------------------------------------------    void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{            Timer1->Enabled = false ;
        Login();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Login(void)
{            TLOGIN *LOGIN;
        bool check_GoNext ;
        try
        {
                LOGIN = new TLOGIN(Application);
                LOGIN->ShowModal();
                delete LOGIN;
        }
        catch (Exception &exception )
        {
                delete LOGIN;
                Application->ShowException(&exception);
        }            if(  true )
        {
           if((MainForm->user_Power & 0x4001) > 0 ) //"ALL"
           {
                File->Visible = true ;
           }
           if( (MainForm->user_Power & 0x7fff) == 0)
           {
               File->Visible = false ;
           }
        }    }
系統時間:2024-05-19 22:00:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!