你好!!maozefa(之源) 我上面的代码看不懂啊!!!
try
    Entry := EntryForm.Execute(False); //相当Form1
  finally
    EntryForm.Free;
  end;
  if not Entry then
  begin
    MainForm.Free;
    ClientData.Free;
    Exit;
  end;
这些我不知道是什么意思啊!!!你能解释一下吗???我现在理解了主窗体的意思,可只是思维上的理解,代码是没有理解!!!!!!!
我现在想从写程序,就是想在启动主窗体是先启动密码验证窗体!!你可以给我写的详细一些或给我发个原代码例子吗??????谢谢,我是刚学的!!!!!
我的email:[email protected]
你可以留下你的,我们叫个朋友吗??????

解决方案 »

  1.   

    program JXCClient;uses
      Forms,
      Main in 'Main.pas' {MainForm},
      DM in 'DM.PAS' {ClientData: TDataModule},
      ServerSet in 'ServerSet.pas' {ServerSetForm},
      EntryDlg in 'EntryDlg.pas' {EntryForm},
      SetupUsers in 'SetupUsers.pas' {SetUsersFrame: TFrame};{$R *.res}var
      Entry: Boolean;
    begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.CreateForm(TClientData, ClientData);
    //*****
    // 以下是自己的代码,其它是系统写的代码,如果没有这段代码,
    // 就会执行最后的Application.Run语句,其运行结果会显示主窗体,
    // 插入代码后,自然在主窗体前先执行,下面加注释。  EntryForm := TEntryForm.Create(Application); // 动态建立一个登记窗体
           // try...finall不论是否出现异常,都释放登记窗体
      try          
           // 以下的Execute函数是我在登记单元中的一个函数,
           // 你不要管,可以看成
           // if EntryForm.ShowModal = mrOk then Entry := True else Entry := False;
           // 显示登记窗体
        Entry := EntryForm.Execute(False);     
      finally
           // 释放窗体,动态建立的窗体一般由程序释放,该窗体应该在Project->Options
           // 菜单弹出对话框的Forms页面中移到右边的 Available Forms列表框中
        EntryForm.Free; 
      end;
      //如果Entry=False,释放由系统建立的两个窗体(看前面的代码,因为应用程序没有
      //正式运行,所以不会自动释放)后退出,程序结束。
      if not Entry then  
      begin
        MainForm.Free;
        ClientData.Free;
        Exit;
      end;
    //否则程序正常运行。
    //可见,这段代码只是程序正常启动前的一个插曲,很多程序都是这样处理的,
    //如Delphi编译系统启动时显示的版本信息画面等。
    //******
      Application.Run;
    end.
      

  2.   

    你好!!!现在我大部分可以理解,还有2点不太懂(我新在从做程序form1为主程序,form2为密码验证程序,我把你的代码家如了program  Project1中):
    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}
    var
      Entry: Boolean;begin
      Application.Initialize;
      Form2 := Form2.Create(Application);
      try
        Entry := Form2.Execute(False);
      finally
        Form2.Free;
      end;
      if not Entry then
      begin
        Form1.Free;
        Exit;
      end;  Application.Run;
    end.
    不知道是不是这样写??
    1、 是这句  Entry := EntryForm.Execute(False); 
    不明白只处在我如何函数execute如何从form2中可以返回一个boolean值给form1,你可以个我代码看看吗??还有execute后的(false)是不是个处设值,在得到form1返回的值时(false)会被覆盖,还是什么??????
       2.这句话    Project->Options
                    // 菜单弹出对话框的Forms页面中移到右边的 Available Forms列表框中
      他的用意是什么???和program  Project1中的代码有什么关联???还是什么??
      

  3.   

    你不见得要照我的模式套,我那只是一个例子,Execute函数是我自己写的一个登记函数,一般情况下,你可参照下面对你的代码的修改。菜单弹出对话框的Forms页面中移到右边的 Available Forms列表框中后,程序在建立时不自动建立该窗体的实例,靠程序员自己写代码建实例,即所谓的动态窗体;左边列表框的Forms由程序自动建立,即静态窗体。uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}
    var
      Entry: Boolean;begin
      Application.Initialize;  Application.CreateForm(TForm1, Form1);  //  Form2 := Form2.Create(Application);
      try
        if Form2.ShowModal = mrOk then Entry := True else Entry := False; ////    Entry := Form2.Execute(False);
      finally
        Form2.Free;
      end;
      if not Entry then
      begin
        Form1.Free;
        Exit;
      end;  Application.Run;
    end.
      

  4.   

    谢谢!!!!!
    我给你发了封EMAIL,如果你总看油箱的话,我可以给你发吗????????
    学习中!!!!!!!!!!!!!!
      

  5.   

    还有!!!!
    我的问题2,我明白了,可是1你好想还没说啊???????
    Execute函数是你自己写的一个登记函数,这我知道,我可以设其他的函数,可我不知道的是如何把一个函数值从form2中反还给form1,也就是说你有没有密码验证窗体(你的登记窗体)函数值负给form1的代码,给我看看??????
    谢谢
      

  6.   

    if Form2.ShowModal = mrOk then这句的意思是什么?????我用了,可测试是报错,报错的意思是找不到mrok,什么意思啊????????
      

  7.   

    哦,你的登记窗体应该有Ok按钮,设置它的ModalResult=mrOK就行了,我的登记窗体很复杂的,是涉及3层数据库的。
      

  8.   

    是这句  Entry := EntryForm.Execute(False); (函数方面我理解,可以任意设)
              不明白只处在我如何把函数execute,从form2中可以返回一个boolean值给form1?????还有execute后的(false)是不是个出设值,在得到form1返回的值时(false)会被覆盖,还是什么??????还了函数在form2中的代码有吗???可以给我看看吗????我不会从form2给函数负个值在反给form1?????????*还有你有没有一些我可以看的懂的有原程序的软件或例子,发给我让我学习一下,我没有找到好的!!!!谢谢
      

  9.   

    还有什么是3层啊?????
    2层的是前端是语言编程(delphi),后端是数据库(sql sever)吗??
    不懂!!!!!学习学习?????