Q&A

  • 10초동안 모달폼을 띄운 후 자동으로 사라지게 하는방법 좀 가르쳐주세요..


타이머를 이용하면 될것 같은데.. 아무리 머리를 짜도 구현이 안되네요.

제가 하려는 것은 모달폼을 띄워서 10초가 되면 자동으로 사라지도록 하는 것입니다.

타이머의 interval을 10초로 해놓게 되니깐, 10초마다 timer이벤트가 발생이 되지, 제가

원하는 10초동안 모달폼이 뜨는 것이 되지 않습니다.



아시는 분 있으시면. 꼭 도움을 주시기 바랍니다.



고맙습니다.



2  COMMENTS
  • Profile
    정계훈 2001.02.27 01:59
    안녕하세요. 전에 어디선가 받아놓은 자료인데 한번 보세요...





    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    ExtCtrls, StdCtrls;



    type

    TMboxThread = class(TThread)

    private

    { private declarations }

    protected

    procedure Execute; override;

    public

    constructor Create;

    end;



    TForm1 = class(TForm)

    Button1: TButton;

    Timer1: TTimer;

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    FMboxThread: TMBoxThread;

    FWinHandle: HWnd;

    end;



    var

    Form1: TForm1;

    CreatedBox: Boolean;



    implementation

    {$R *.DFM}



    constructor TMboxThread.Create;

    begin

    // thread의 실행이 종료하면 자동으로 free되게 설정

    FreeOnTerminate := True;



    inherited Create(False);

    end;



    procedure TMboxThread.Execute;

    begin

    MessageBox(Application.Handle, '이 메시지박스는 자동으로 없어집니다', '알림',

    MB_APPLMODAL + MB_SETFOREGROUND);

    CreatedBox := False;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    CreatedBox := False;

    Timer1.Interval := 3000;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    FMBoxThread := TMBoxThread.Create;

    CreatedBox := True;

    Timer1.Enabled := True;

    end;



    procedure TForm1.Timer1Timer(Sender: TObject);

    begin

    Timer1.Enabled := False;

    if Assigned(FMBoxThread) and CreatedBox then

    begin

    // MessageBox 의 핸들을 찾아서 종료시킨다

    FWinHandle := GetForegroundWindow;

    SendMessage(FWinHandle, WM_CLOSE, 0, 0);

    end;

    end;



    end.



    초보자 wrote:

    >

    > 타이머를 이용하면 될것 같은데.. 아무리 머리를 짜도 구현이 안되네요.

    > 제가 하려는 것은 모달폼을 띄워서 10초가 되면 자동으로 사라지도록 하는 것입니다.

    > 타이머의 interval을 10초로 해놓게 되니깐, 10초마다 timer이벤트가 발생이 되지, 제가

    > 원하는 10초동안 모달폼이 뜨는 것이 되지 않습니다.

    >

    > 아시는 분 있으시면. 꼭 도움을 주시기 바랍니다.

    >

    > 고맙습니다.

    >

  • Profile
    김종언 2001.02.27 00:52
    타이머를 사용하되...

    10초후 타이머의 Enable 을 False로 하면.. 10초후엔 타이머 이벤트가 발생하지 않습니다.



    다른 방법도 있는데.. 그건 잘 몰라서....





    초보자 wrote:

    >

    > 타이머를 이용하면 될것 같은데.. 아무리 머리를 짜도 구현이 안되네요.

    > 제가 하려는 것은 모달폼을 띄워서 10초가 되면 자동으로 사라지도록 하는 것입니다.

    > 타이머의 interval을 10초로 해놓게 되니깐, 10초마다 timer이벤트가 발생이 되지, 제가

    > 원하는 10초동안 모달폼이 뜨는 것이 되지 않습니다.

    >

    > 아시는 분 있으시면. 꼭 도움을 주시기 바랍니다.

    >

    > 고맙습니다.

    >

    • 이제관
      2001.02.27 04:40
      Project -> View Source에 가셔서 login Form을 ShowModal로 보여주세요 이때 Login Form은 MDI 폼(부...
    • 비기너
      2001.02.27 20:02
      이제관 wrote: > > Project -> View Source에 가셔서 login Form을 ShowModal로 보여주세요 > > 이때...
    • 이제관
      2001.02.28 08:22
      제 소스를 보내니 참조하세요 program SchoolManager; uses Forms, uCheckPassword in 'uCheckPa...
    • free0210
      2001.02.27 04:26
      with TClientSocket.Create(Self) do begin Name:= 'Socket' + IntToStr(Max); OnConnect:= ClientSo...
    • 똘망울
      2001.02.27 19:29
      아래분이 자세히 설명해 주셨네요.. 보통..여러개로 생성된 객체에 대한 확인 Tag인자에 값으로 확인하는...
    • ㅜㅜ
    • 2001.02.27 02:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 권민호
      2001.02.27 02:30
      제가 알고 있는것이 맞는 이름인지는 확실하지 않지만 퀀쿼터네이션이라고 부르는데(스팰링은 잘모름...) ...
    • 한상훈
    • 2001.02.27 01:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.27 02:09
      안녕하세요. 최용일입니다. 두개의 코드는 완전히 동일한 코드입니다. if문에다가 브레이크포인트걸구 C...
    • 김현
      2001.02.27 09:30
      C:Program FilesBorlandDelphi5DemosThreads 에 예제가 있습니다. 사실 이것만 보고 쓰레드를 쓸 수 있...
    • 두리
    • 2001.02.27 01:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 맨~
      2001.02.27 01:27
      두리 wrote: > 비베에선 lostfocus라는 이벤트가 있자나여!!! > > 델파이에서두 이런 기능이 있나여???...
    • 초보.
    • 2001.02.27 01:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.27 01:35
      안녕하세요. 최용일입니다. 델파이에서는 빠른속도를 위하여 레코드형을 4바이트씩 옵티마이징합니다. ...
    • 초보.
      2001.02.27 01:51
      소켓 프로그램하면서,,, 최용일님의 글을 많이 봤습니다.. 엄청난 도움을 받고 있구요. 덕분에 해결했...
    • 초보자
    • 2001.02.27 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 정계훈
      2001.02.27 01:59
      안녕하세요. 전에 어디선가 받아놓은 자료인데 한번 보세요... unit Unit1; interface uses W...
    • 김종언
      2001.02.27 00:52
      타이머를 사용하되... 10초후 타이머의 Enable 을 False로 하면.. 10초후엔 타이머 이벤트가 발생하지 않...
    • 지니
    • 2001.02.27 03:26
    • 0 COMMENTS
    • /
    • 0 LIKES
    • pallas
    • 2001.02.26 22:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.02.26 23:29
      쩝.. 고수도 아닌데 주제넘게 답변하는거 아닌지 모르겠네요. 사실 저도 확실히 아는건 아닙니다만.. 1....
    • purunoon
    • 2001.02.26 22:31
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 써니
    • 2001.02.26 22:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이기태
      2001.02.28 10:02
      데이터 유형을 보니까... Group By 로 해결하시려면 고생스러우시겠네요... 아무래도 일종의 크로스탭 ...
    • 임형호
      2001.02.26 22:27
      group by 필드명1, 필드명2 이렇게 적어주면... 필드명1로 그룹한후 다시 필드명2로 그룹합니다. ...
    • 최용일
      2001.02.27 01:42
      안녕하세요. 최용일입니다. TListItems.Count가 Integer형이니까 넣는데는 거의 제한이 없다고 생각해도...
    • 각시탈
    • 2001.02.26 21:24
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 도지성
      2001.02.27 22:42
      각시탈 wrote: > 네.. 안녕하십니까.. > 흠... 아아... 다이렉트 엑스가.. > 나를 괴롭게 맹글어서리.. ...
    • 각시탈
      2001.02.27 23:55
      > 정확하게 질문의 요지가 파악이 안되어서 정확한 답변은 > 드릴 수가 없으나 제가 쓰는 Direct Input cl...
    • 도지성
      2001.02.28 07:49
      > 성의 있는 답변 감사합니다. > 위글에서 "port 60h 번의 모든 Keyboard 상태를 읽어서 배열에다가 저장...
    • 각시탈
      2001.03.01 00:56
      도지성 wrote: > > 성의 있는 답변 감사합니다. > > 위글에서 "port 60h 번의 모든 Keyboard 상태를 읽...
    • 김광섭
      2001.02.27 03:38
      델 초보 wrote: > 제가 할려는게 우편번호를 검색해서 그걸 dbgrid에다 뿌려줄려고 하거든여.. > 근데 거...