Q&A

  • 로그인 모달폼 변수값 전달 질문드립니다.

델파이 초보 입니다.

이곳에 올라온 로그인 모달폼을 가지고 만들었습니다.

동작은 잘 되고 있지만  프로젝트 소스에서 Label.Caption에 찍는 것만 되고 있습니다.

직접 가져와서 작업을 좀 해야 되는대...왜그런지 알려 주셨으면 감사하겠습니다.

작업 환경은 xe2 study 입니다.

 

 

login.pas

class function Execute : boolean;

 

class function TLoginForm.Execute: boolean;
begin
  with TLoginForm.Create(nil) do
  try
    Result := ShowModal = mrOk;
  finally
    Free;
   end;
end;

프로젝트 소스

begin

     with TLoginForm.Create(Application) do

    begin

     if ShowModal = mrOK then
    begin
      strID := Edtusername.Text;
      strPW := Edtpassword.Text;
      exdate := Expiration ;

 

     Application.CreateForm(TMainForm, MainForm);
     MainForm.Label4.Caption := strID;
     MainForm.Label5.Caption := strPW;
     MainForm.Label6.Caption := exdate;
      Hide;
      Free;
      Application.Run;

    end
  end;

end.

 

main.pas

uses login은 추가 했습니다.

 

Label4.Caption :=LoginForm.Edtusername.Text;

access viaolation 오류 발생

LoginForm Public 변수로 선언해서 가져 올려구 해도 동일 오류 발생.

 

읽어 주셔서 감사합니다.

 

3  COMMENTS
  • Profile
    zeliard 2012.05.03 07:02

    그렇게 쓰실려면 with TLoginForm.Create(Application) do로 하시면 안되고

    LoginForm := TLoginForm.Create(Application);

    with LoginForm do

    로 하셔야죠...

    var LoginForm: TLoginForm; <== 전역변수

  • Profile
    zerosum 2012.05.03 08:18

    감사합니다.... 너무 모르고 질문 해서 죄송 스럽네요. ㅡㅡ;

  • Profile
    hanwol 2012.05.04 02:10

    Label4.Caption :=LoginForm.Edtusername.Text;을

    with TLoginForm.Create(Application) do

      begin end 안에 Label4.Caption := Edtusername.Text로 하시면 될거 같은데요