| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4476 人关注过本帖
标题:delphi 登陆界面后显示主窗体,出现 access violation 错误
只看楼主 加入收藏
a373492883
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-2-28
结帖率:0
收藏
 问题点数:0 回复次数:4 
delphi 登陆界面后显示主窗体,出现 access violation 错误
delphi先是登陆窗体,用户名密码正确后显示主窗体,程序如下,目前错误,登陆界面运行后,出现access violation at address错误,求解哪错了。。。哎,憋了我2天了。。那是相当难受
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

unit Unit20141126_2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;


implementation

uses Unit20141126_2_2;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
   name,password,sqlstr:string;
begin
        if (length(trim(edit1.Text))>0) or (length(trim(edit2.Text))>0) then
        begin
              name:=trim(edit1.Text); //取得用户输入的用户名
              password:=trim(edit2.Text); //取得用户输入的密码
               sqlstr:='select * from t_user where (username='''+name+''') and(userpass='''+password+''')';
               with Tadoquery.create(nil) do
               try
                     connection:=form1.adoconnection1;
                     close;
                     sql.clear;
                     sql.add(sqlstr);
                     open;
                          if recordcount>0 then
                          begin
                               form2.hide;
                               showmessage('登陆成功');
                               Application.createForm(TForm1,Form1);
                               Form1.ShowModal;

                          end
                          else
                          begin
                               showmessage('用户名密码错误');
                               edit1.SetFocus;
                               edit1.SelectAll;
                          end;

               finally
                       free;
               end;

        end
        else
        begin
               showmessage('请输入用户名密码');
               edit1.SelectAll;
        end;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;

end.
搜索更多相关主题的帖子: Windows address access 用户名 
2014-11-27 16:57
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 
你太牛叉了,代码能写成这样!!!!

大家都是朋友,有空就来坐坐!
2014-12-01 15:52
a373492883
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-2-28
收藏
得分:0 
好吧我承认我不是变成的材料。。。。
2015-02-25 09:31
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
http://www.

不懂语法的我,也刚开始学习中。。。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-02-26 00:59
AleTiff
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:64
专家分:157
注 册:2015-3-30
收藏
得分:0 
看你代码里有一句: Application.createForm(TForm1,Form1) ,这句是不是意味着,在这之前,你的 Form1 是还没有创建的?

如果你的回答是“Yes”,那么我还看到这句的前面有一句: connection:=form1.adoconnection1 ,Form1 都没创建起来,你就已经在访问它上面的 connect 对象了?

好吧,如果你的回答是“No”,那么你写这句是担心什么呢?

Delphi 中,如果不想一开始就显示 主窗体,可以在 Project 单元的 begin .. end 的某个地方,使用 Application.ShowMainForm = false 来达到目的。这个时候,主窗体其实是已经创建的,只不过被隐藏了,你可以访问这个窗体上的任何全局对象,直到你觉得需要它显示为止。
2015-04-10 15:39
快速回复:delphi 登陆界面后显示主窗体,出现 access violation 错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019025 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved