안녕하셔여 항상 많은 도움만 받고 있는 용이에여
다름이 아니라
frmlogin 폼에서 버튼을 눌렀을 때 frmmain을 호출하거든여
procedure TfrmLogin.btnLoginClick(Sender: TObject);
begin
User_ID := edtId.text; //전역변수로 선언된 아이디
User_PWD := edtPw.text; //전역변수로 선언된 패스워드
if frmMain = nil then
frmMain := TfrmMain.Create(Application);
frmlogin.free;
frmMain.Showmodal;
end;
procedure TfrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmLogin := nil;
end;
근데 여기서 생성된 frmmain을 닫으면 바로 그 왠수같은 "access violation at address
00010105 .write of address 00000000"이 떠 버립니다...
메모리에서 완전하게 삭제된거 같지도 않구여...몇개 글을 읽어 봤는데 잘 이해도 안가고 해 봐도 안되고 고수님들 도와 주세여....ㅠㅠ
> 안녕하셔여 항상 많은 도움만 받고 있는 용이에여
> 다름이 아니라
> frmlogin 폼에서 버튼을 눌렀을 때 frmmain을 호출하거든여
> procedure TfrmLogin.btnLoginClick(Sender: TObject);
> begin
> User_ID := edtId.text; //전역변수로 선언된 아이디
> User_PWD := edtPw.text; //전역변수로 선언된 패스워드
>
> if frmMain = nil then
> frmMain := TfrmMain.Create(Application);
> frmlogin.free;
> frmMain.Showmodal;
> end;
>
> procedure TfrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
> begin
> Action := caFree;
> frmLogin := nil;
> end;
>
> 근데 여기서 생성된 frmmain을 닫으면 바로 그 왠수같은 "access violation at address
> 00010105 .write of address 00000000"이 떠 버립니다...
> 메모리에서 완전하게 삭제된거 같지도 않구여...몇개 글을 읽어 봤는데 잘 이해도 안가고 해 봐도 안되고 고수님들 도와 주세여....ㅠㅠ
하이염...
아래의 이경문님 역쉬 우리 델세상 동호회의 회원님들중 자랑하구픈 회원님이십니다.^^
(물론 최용일님이나 다른분들두 다 존경하구... ^^)
그런데... 다른 것두 있다구 이야기 하구 시퍼서 글 남겨유...
사용자 Login 정보를 받을수 있는 것을 만드는 것은 어떨까 하는 군요~
사용예는 다음과 같습니다.
물론, 아래의 예제는 db를 안써두 쓸수 있답니다. ^^
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, DBLogDlg;
// =====================================================================
// 유닛절에 DBLogDlg를 추가 해야 합니다.
// 그에 따른 해설은 다음과 같군요
// TLoginDialog is a login dialog box that can be used
// to provide login security within an application.
// =====================================================================
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
dlgLogin: TLoginDialog;
begin
dlgLogin := TLoginDialog.Create(Application);
dlgLogin.Caption := '로그인화면';
dlgLogin.DatabaseName.Caption := '데이타베이스명';
dlgLogin.ShowModal;
if dlgLogin.ModalResult = mrOk then
begin
// OK 클릭시 처리
// 그 대화상자에서 사용자가 친 내용을 가져올수 있습니다.
ShowMessage(dlgLogin.UserName.Text); // 유저명
ShowMessage(dlgLogin.PassWord.Text); // 패스워드
end;
end;
end.
델세상(http://www.freechal.com/delphiworld)의 조규춘이였습니다.