델파이 로그인 예제

새 Delphi 프로젝트가 만들어지면 “Form1″은 자동으로 MainForm 속성(전역 응용 프로그램 개체)의 값이 됩니다. MainForm 속성에 다른 양식을 할당하려면 디자인 타임에 프로젝트 > 옵션 대화 상자의 양식 페이지를 사용합니다. 주 양식이 닫히면 응용 프로그램이 종료됩니다. 먼저 응용 프로그램의 기본 양식을 만들어 보겠습니다. 하나의 양식이 포함된 새 Delphi 프로젝트를 만듭니다. 이 양식은 의도적으로 주요 형태입니다. 두 번째 양식의 이름을 “TLoginForm”으로 지정하고 “양식 자동 만들기” 목록에서 제거합니다. 장치를 “login.pas”로 저장합니다. 나는 DPR 파일을 너무 많이 망치는 것을 좋아하지 않는다. 이 작품은 올바른 순서로 양식을 표시하고, TMainForm이 Delphi에 의해 자동 생성된 경우 MainForm 변수가 이미 할당되어 OnCreate가 실행될 때 사용할 준비가 되었습니다.

Delphi 응용 프로그램의 MainForm은 응용 프로그램의 본문에서 만든 첫 번째 양식(창)입니다. Delphi 응용 프로그램에 대한 일종의 권한 부여를 구현해야 하는 경우 기본 양식을 만들고 사용자에게 표시하기 전에 로그인/암호 대화 상자를 표시할 수 있습니다. 즉, 기본 양식을 만들기 전에 “로그인” 대화 상자를 만들고 표시하고 삭제하는 것이 좋습니다. 내 델파이 프로그램에서 나는 로그인 양식을 했고 기본 양식이 만들어지기 전에 표시되지만, 내가 직면하고있는 문제는 로그인 확인이 기본 형태로 처리되도록하려는 것입니다. 에서 Execute 메서드는 TLoginForm의 인스턴스를 동적으로 만들고 ShowModal 메서드를 사용 하 여 표시 합니다. ShowModal은 양식이 닫히기 전까지 반환되지 않습니다. 양식이 닫히면 ModalResult 속성의 값을 반환합니다. 다음은 TLoginForm 코드 (delphi.about.com): ModalResult 속성에 값을 설정 하면 폼을 닫습니다.

ModalResult가 “mrOk”(사용자가 올바른 암호를 입력한 경우)와 같으면 execute가 true를 반환합니다. 로그인 버튼: TButton;pwdLabel: TLabel;암호 편집: TEdit;프로시저 로그인ButtonClick (보낸 자: TObject) ; 다음 의 사용을 참고 다음 다른 블록 은 기본 양식을 만들어야하는지 여부를 결정합니다. “실행”이 false를 반환하면 MainForm이 만들어지지 않고 응용 프로그램이 시작하지 않고 종료됩니다. 폼의 이름을 “TMainForm”으로 변경하고 단위를 “main.pas”로 저장하면 프로젝트의 소스 코드가 다음과 같습니다 (프로젝트가 “PasswordApp”로 저장됨): PS: MainForm 변수를 가식하는 것은 실제로 잘못된 디자인이지만 원하는 경우 해당 변수가 있습니다. 양식에 레이블, 편집 및 단추를 추가한 다음 클래스 메서드를 추가하여 로그인/암호 대화 상자를 만들고 표시하고 닫습니다. 사용자가 암호 상자에 올바른 텍스트를 입력한 경우 “실행” 메서드는 true를 반환합니다. 이제 프로젝트에 두 번째 양식을 추가합니다. 의도적으로 추가된 두 번째 양식은 프로젝트 옵션 대화 상자의 “양식 자동 만들기” 목록에 나열됩니다.

기본 양식을 먼저 만들어야하는 경우 먼저 만듭니다 : David의 대답과 유사하지만 약간 다른 동작으로 이전에 응용 프로그램의 수명에서 재사용할 수있는이 솔루션에 대답했습니다. “LogInButton” OnClick 이벤트 처리기는 사용자가 올바른 암호를 입력한 경우 ModalResult 속성에 “mrOk”를 할당합니다(위의 예에서 “델파이”). 사용자가 잘못된 암호를 제공한 경우 ModalResult는 “mrAbort”로 설정됩니다(“mrNone”을 제외한 모든 것일 수 있음). 이제 사용자가 올바른 암호를 제공하지 못한 경우에만 기본 양식이 만들어지지 않았는지 확인해야 합니다. 나는 보통 에서이 작업을 수행메인폼의 만들기; 또는 데이터 모듈의 온 만들기에서(있는 경우). 예를 들어, 질문한 질문에 대한 직접적이고 순진한 대답입니다.