Q&A

  • MessageBox delphi4 에서 안됨... --;
최용일님을 상당히 귀찮게 해드리는군요.......^^



정말로 풀 소스를 delphi4에서 코딩해서 돌려봤는데요..



처음에 보내주신것은 delphi1,4 둘다 잘 됩니다...



하지만 그다음에 버튼 누르는 부분까지 추가한거 있죠?



MsgButton 누르거요..



그거 추가하면 역시 안되요...



제가 MessageBox 뜨면 멈처버린다는 말씀을 믿기 어려우신것처럼

저역시 용일님이 된다는것이 도저히.....믿기 힘들어요...

으아........딜레마에 빠져버렸나봐요....



안되요.....MessageBox 가 뜨면 진행을 멈처버리죠..



다시 정리하면...

FindForm_PRJ 에서 MsgForm_PRJ 의 MsgButton 을 누른후 MessageBox를 찾아 닫아주는거죠..



저의 현상은 MsgButton을 누르면 MessageBox 가 뜨는 순간 딱 멈처버리죠..

원래는 OnTimer 이벤트가 작동하는 부분이 진행되어야하는데..

않되요..흘흘........정말 미침....버근가? --;





1  COMMENTS
  • Profile
    최용일 2000.05.16 05:41
    안녕하세요. 최용일입니다.



    안되시는 이유를 알것 같습니다. 이 SendMessage때문에 그런것 같군요. 메세지를



    보내고 기다리니까 아마도 멈추는 것 같네요. SendMessage대신에 PostMessage를



    사용해 보세요. 이건 메세지를 메세지큐에 넣기만하는 함수입니다.



    소스는 약간 고쳤습니다. 버튼을 클릭하면 파일을 실행하고 버튼에 클릭이벤트를



    보내 메세지창을 띄우고 3초간 기다린후 메세지박스를 닫도록하였습니다.



    ^^ 항상 즐코하세요.



    unit FindForm_Unit;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Forms, ExtCtrls, StdCtrls, Controls, Dialogs;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Timer1: TTimer;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    private

    Counter: Integer;

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}





    procedure TForm1.Button1Click(Sender: TObject);

    var

    Path: string;

    MsgForm, MsgBtn: HWnd;

    begin

    Path := ExtractFilePath(Application.ExeName);

    WinExec(PChar(Path + 'MsgForm_Prj.exe'), SW_SHOWDEFAULT);





    MsgForm := FindWindow('TMsgForm', 'MsgForm');



    if MsgForm <> 0 then

    begin



    MsgBtn := FindWindowEx(MsgForm, 0, 'TButton', 'MsgButton');

    if MsgBtn <> 0 then

    begin



    repeat

    PostMessage(MsgBtn, WM_LBUTTONDOWN, 0, 0);

    PostMessage(MsgBtn, WM_LBUTTONUP, 0, 0);

    until FindWindow('#32770', 'MsgBox') = 0; // 메세지박스가 뜰때까지...



    Counter := 0;

    Timer1.Enabled := True;

    end

    else

    ShowMessage('Error'); // 메세지 박스를 찾지 못하미...

    end



    else

    ShowMessage('Error'); // 실행파일이 제대로 실행되지 않음...

    end;



    procedure TForm1.Timer1Timer(Sender: TObject);

    var

    DialogWnd, ButtonWnd: HWND;

    begin

    if Counter < 3 then

    begin

    Inc(Counter);

    Label1.Caption := IntToStr(Counter);

    Exit;

    end;



    // 메세지 박스 찾기...

    DialogWnd := FindWindow('#32770', 'MsgBox');

    if DialogWnd <> 0 then

    begin

    // 메세지 박스의 버튼 핸들을 찾기

    ButtonWnd := FindWindowEx(DialogWnd, 0, 'Button', '확인');



    // 버튼에 클릭메세지를 보내 메세지 박스를 닫기

    if ButtonWnd <> 0 then

    begin

    PostMessage(ButtonWnd, WM_LBUTTONDOWN, 0, 0);

    PostMessage(ButtonWnd, WM_LBUTTONUP, 0, 0);

    end;

    end;



    TTimer(Sender).Enabled := False;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Timer1.Enabled := False;

    end;



    end.







    안희준 wrote:

    > 최용일님을 상당히 귀찮게 해드리는군요.......^^

    >

    > 정말로 풀 소스를 delphi4에서 코딩해서 돌려봤는데요..

    >

    > 처음에 보내주신것은 delphi1,4 둘다 잘 됩니다...

    >

    > 하지만 그다음에 버튼 누르는 부분까지 추가한거 있죠?

    >

    > MsgButton 누르거요..

    >

    > 그거 추가하면 역시 안되요...

    >

    > 제가 MessageBox 뜨면 멈처버린다는 말씀을 믿기 어려우신것처럼

    > 저역시 용일님이 된다는것이 도저히.....믿기 힘들어요...

    > 으아........딜레마에 빠져버렸나봐요....

    >

    > 안되요.....MessageBox 가 뜨면 진행을 멈처버리죠..

    >

    > 다시 정리하면...

    > FindForm_PRJ 에서 MsgForm_PRJ 의 MsgButton 을 누른후 MessageBox를 찾아 닫아주는거죠..

    >

    > 저의 현상은 MsgButton을 누르면 MessageBox 가 뜨는 순간 딱 멈처버리죠..

    > 원래는 OnTimer 이벤트가 작동하는 부분이 진행되어야하는데..

    > 않되요..흘흘........정말 미침....버근가? --;

    >

    >

    • 조유정
    • 2000.05.16 19:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김 재억
      2000.05.16 20:42
      조유정 wrote: > 안녕하셔요 > > 파라독스의 데이타를 SQL로 옮기고 싶은데... > > 방법이 있으면 ...
    • 몰라
    • 2000.05.16 19:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김범석
      2000.06.24 20:42
      Quick Report 버그인듯 QRExpr 이 한 번 않되면 끝까지 않됩니다 Quick Report 를 다시 그리거나 QRLa...
    • 2000.05.16 20:23
      몰라 wrote: > Quick Report에서 Query 콤포넌트를 다른 폼의 Query 콤포넌트로 사용하여 > Detail의 각...
    • tommy
      2000.05.17 21:09
      김 wrote: > 몰라 wrote: > > Quick Report에서 Query 콤포넌트를 다른 폼의 Query 콤포넌트로 사용하여 ...
    • 어린왕자
      2000.05.16 20:43
      하늘맥 wrote: > 탭키를 누르면 다음 칸으로 넘어가도록 되어 있챦아요... > 제가 하고 있는 프로젝트는 ...
    • optech
      2000.05.16 18:27
      당연히 설정된 인덱스에 따라 바뀝니다. 첫번째 칼럼에 인덱스(or key)가 걸려 있으면 첫번째 칼럼기준으...
    • 홍세비
    • 2000.05.16 10:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍세비
      2000.05.16 21:26
      홍세비 wrote: > 안녕하세요. > > 동적으로 생성한 라벨에 팝업메뉴를 연결했습니다. > > TmpLabe...
    • 최용일
      2000.05.16 11:11
      안녕하세요. 최용일입니다. 팝업메뉴의 PopupComponent속성을 이용하세요. 이 속성이 가리키는 컴포넌트...
    • 델초보
    • 2000.05.16 10:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • cego
      2000.05.19 20:08
      델초보 wrote: > 전 노트북과 데스크탑을 가지고 있는데 노트북에 MS SQL서버를 설치하고 데스크탑에서 서...
    • optech
      2000.05.16 18:31
      랜카드는설치 되어있는지가 궁금하군요.. ms sql서버에서 지원되는 프로토콜로만 연결가능할겁니다. 여...
    • 델초보
      2000.05.18 11:09
      먼저 답변에 감사드리며...둘다 랜카드는 설치되어있지 않습니다. 모두 모뎀만 설치된 상태이며, 허브를 구...
    • 홍세비
      2000.05.16 18:55
      최상열 wrote: > 이미지 버튼 컴포넌트 가지고 계신분? > 혹은 어디 있는지 아시는 분은 좀알려주세요.. ...
    • leollo
    • 2000.05.16 09:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 조복기
    • 2000.05.16 06:36
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.05.16 11:27
      안녕하세요. 최용일입니다. 가장 오차가 많은것이 실수계산인데요. 다음과 같이 80x87 Control Word를 ...
    • 임형호
      2000.05.16 13:25
      역시...고수님은 다르시군요. 전 소스를 보고도 무시기 소리인지 잘 파악이 안됩니다. 늦은시간 최용일님...
    • 임형호
      2000.05.16 08:17
      조복기 wrote: > > 안녕하세요~ > 간단한 문제같으면서도 해결방법이 생각나지 않아 질문을 올립니다.....
    • 조복기
      2000.05.16 09:05
      안녕하세요..형호님^^ 제도 하도 한델에 오질않아서 자주못
    • 최용일
      2000.05.16 06:02
      안녕하세요. 최용일입니다. 먼저 폼이 쉘에서의 드래&드랍을 허용하도록 DragAcceptFiles이라는 API함수...
    • 황현
    • 2000.05.16 05:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2000.05.17 05:04
      황현 wrote: > * 사용환경 : 델파이5 / Windows 98 > 보통 비베에서 컴포넌트를 만들경우 컴포넌트DLL 과...
    • 류종택
      2000.05.16 05:33
      분류대로 ASP를 OCX로 이해하고 답변하겠습니다.. OCX로 만들 경우에도 따로 배포해야할 것은 없습니다.. ...
    • 노상균
    • 2000.05.16 05:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.05.16 06:01
      노상균 wrote: > 안녕하십니까 ? > > 먼저 저의 자료는 이렇습니다. > > Table1 : Name.DB가 있고 ...
    • 류종택
      2000.05.16 05:30
      Select Trunc(napdal, 1) from ... 와 같이 Trunc 함수를 사용하세요.. 주의할 점은 반올림이 아니라 버...
    • young
      2000.05.16 21:14
      young wrote: 답변 감사드립니다...종택님... 하지만 trunc함수나. ceil함수를 써봤으나... capability ...
    • 류종택
      2000.05.17 00:11
      무슨 DB와 Field를 사용하셨는지는 모르겠지만.. 에러의 내용을 번역 해 보면.. 용량초과네요.. 즉, 각 ...
    • 안희준
    • 2000.05.16 04:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.05.16 05:41
      안녕하세요. 최용일입니다. 안되시는 이유를 알것 같습니다. 이 SendMessage때문에 그런것 같군요. 메세...
    • 조규춘
      2000.05.16 04:53
      완델초 wrote: > 안녕하세요...완전 델초입니다... > DBGrid에서 선택된 레코드의 필드들을 > 다른 Form...
    • 완델초
      2000.05.16 05:36
      답변 감사드립니다.... datasource, database, form모두 다른 경우입니다... Form2.DBEdit1.Text := DB...
    • 조규춘
      2000.05.16 05:49
      완델초 wrote: > 답변 감사드립니다.... > datasource, database, form모두 다른 경우입니다... > > F...