Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[3148] [답변] 폭주족/ dialog에 대해 ?
착한나무 [ ] 1291 읽음    1998-06-05 16:43

   델파이로 대답을 해드리겠습니다...

   Thread 객체를 사용해 보십시오..
   먼저 Project에 Form1, Form2 가 있다면
   Form1 -> Main Form - 1개의 Button이 있습니다.
   Form2 -> Dialog Form, (Border Style을 bsDialog 로 바꿉니다)
                      - 1개의 Button과 1개의 ProgressBar가 있슴다

   Unit1;
   ...
   type
     // Thread 객체 정의
     TReadWord = class (TThread)
     public
         constructor Create;
         procedure Execute; override;
     end;

     Form1 = class (TForm)
         ...
     public
         ReadWord : TReadWord;
     end;

   implementation

   // Thread 객체 생성자
   constructor TReadWord.Create;
   begin
        inherited Create (False);
        FreeOnTerminate := true;
   end;
   ...
   // 실제 처리할 내용을 담는다...
   procedure TReadWord.Execute;
   var
      i, j : integer;
   begin
        with Form2 do
        begin
             For i := 1 to 100 do
             begin
                  for j := 1 to 10000000 do;
                  progressBar1.position := i;
                  if Terminated then
                  begin
                       Form2.Close;
                       Exit;
                  end;
             end;
        end;
        Form2.Close;
   end;

   글구 Button을 누르면
   procedure TForm1.Button1Click(Sender: TObject);
   begin
        ReadWord := TReadWord.Create;
        Form2.ShowModal;
   end;

   // **************************************** //
   Unit2; // 에서는...

   // Form2(Dialog)를 닫힐 때
   procedure TForm2.Button1Click(Sender: TObject);
   begin
     Form1.ReadWord.Terminate;
     Close;
   end;

   // Form2(Dialog)가 닫힐 때 - OnClose Event
   procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
   begin
     Form1.ReadWord.Terminate;
   end;

   위와 같이 한 번 해보세요..
   그럼..


+ -

관련 글 리스트
3148 [답변] 폭주족/ dialog에 대해 ? 착한나무 1291 1998/06/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.