Q&A

  • Form이 Active되어 있는 지 체크방법...
안녕하세요. 델파이 초보자입니다.

MDI에서 MDIChild를 open하고 그위에 StayOnTop 으로 window를 open하였습니다.

그런데 이 StayOnTop window는 특정 MDIChild window가 Close되면 자동으로 Close

하고 싶습니다. 그러기 위해서 StayOnTop Window가 이미 Open되어 있으면 그냥 MDIChild window와 StayOnTop Window를 모두 close시키고 StayOnTop Window가

Open되어 있지 않은 상태면 MDIChild Window만 close시켜야 합니다.



그래서 이 StayOnTop Window가 이미 Open되어 있는 지를 체크하는 방법을 알고 싶습니다.



그리고 MDIChild Window에서 StayOnTop을 Open할때 MDIChild에서 Parameter를

넘길수 있는 방법과 StayOnTop Window를 Close시 특정 Parameter value를 MDI

Child Window에 Return하는 방법은 없습니까?



많은 답변 부탁드립니다.



3  COMMENTS
  • Profile
    한윤희 2001.02.01 21:09
    저도 이곳에서 자료를 많이 얻어가는 한사람으로서 도움이 되시길....



    var DHandle : THandle;

    DHandle := 0;



    for k := MDIChildCount-1 downto 0 do

    begin

    //폼의 이름으로 비교.

    if MDIChildren[k].Name = 'StayOnTop의 FormName' then begin

    DHandle := MDIChildren[k].Handle;

    SendMessage(DHandle,WM_CLOSE,0,0);

    end;

    end;



    두번째 같은 경우는 chileform의 public 에 변수를 선언하고 쓰심 어떨런지...

    질문의 내용과 맞는 답변인지는 모르겠네요.



    onlyna wrote:

    > 안녕하세요. 델파이 초보자입니다.

    > MDI에서 MDIChild를 open하고 그위에 StayOnTop 으로 window를 open하였습니다.

    > 그런데 이 StayOnTop window는 특정 MDIChild window가 Close되면 자동으로 Close

    > 하고 싶습니다. 그러기 위해서 StayOnTop Window가 이미 Open되어 있으면 그냥 MDIChild window와 StayOnTop Window를 모두 close시키고 StayOnTop Window가

    > Open되어 있지 않은 상태면 MDIChild Window만 close시켜야 합니다.

    >

    > 그래서 이 StayOnTop Window가 이미 Open되어 있는 지를 체크하는 방법을 알고 싶습니다.

    >

    > 그리고 MDIChild Window에서 StayOnTop을 Open할때 MDIChild에서 Parameter를

    > 넘길수 있는 방법과 StayOnTop Window를 Close시 특정 Parameter value를 MDI

    > Child Window에 Return하는 방법은 없습니까?

    >

    > 많은 답변 부탁드립니다.

    >

  • Profile
    onlyna 2001.02.01 23:35
    그런데 StayOnTop style의 form은 MDIChild form이 아니므로 폼의 이름을 비교하는

    부분에 걸리지 않습니다. 결국은 StayOnTop이 Open되어 있는 지를 체크가 안됩니다.



    그리고 두번째 질문의 MDIChild Form의 Public에 변수를 선언하고 변수에 값을 넣고

    StayOnTop window에서 그변수를 사용하는 데 undefine되어 있다고 합니다.

    StayOnTop window에 당연히 MDIChild window를 참조하도록 하였습니다.



    답변주세요.



    한윤희 wrote:

    > 저도 이곳에서 자료를 많이 얻어가는 한사람으로서 도움이 되시길....

    >

    > var DHandle : THandle;

    > DHandle := 0;

    >

    > for k := MDIChildCount-1 downto 0 do

    > begin

    > //폼의 이름으로 비교.

    > if MDIChildren[k].Name = 'StayOnTop의 FormName' then begin

    > DHandle := MDIChildren[k].Handle;

    > SendMessage(DHandle,WM_CLOSE,0,0);

    > end;

    > end;

    >

    > 두번째 같은 경우는 chileform의 public 에 변수를 선언하고 쓰심 어떨런지...

    > 질문의 내용과 맞는 답변인지는 모르겠네요.

    >

    > onlyna wrote:

    > > 안녕하세요. 델파이 초보자입니다.

    > > MDI에서 MDIChild를 open하고 그위에 StayOnTop 으로 window를 open하였습니다.

    > > 그런데 이 StayOnTop window는 특정 MDIChild window가 Close되면 자동으로 Close

    > > 하고 싶습니다. 그러기 위해서 StayOnTop Window가 이미 Open되어 있으면 그냥 MDIChild window와 StayOnTop Window를 모두 close시키고 StayOnTop Window가

    > > Open되어 있지 않은 상태면 MDIChild Window만 close시켜야 합니다.

    > >

    > > 그래서 이 StayOnTop Window가 이미 Open되어 있는 지를 체크하는 방법을 알고 싶습니다.

    > >

    > > 그리고 MDIChild Window에서 StayOnTop을 Open할때 MDIChild에서 Parameter를

    > > 넘길수 있는 방법과 StayOnTop Window를 Close시 특정 Parameter value를 MDI

    > > Child Window에 Return하는 방법은 없습니까?

    > >

    > > 많은 답변 부탁드립니다.

    > >

  • Profile
    한윤희 2001.02.02 00:39
    그렇다면

    Childform종료시에

    /////////////

    DHandle := findwindow('Tform2',nil); //핸들값리턴 Tform2 -> ClassName

    SendMessage(DHandle,WM_close,0,0);

    /////////////

    이렇게 해 보세요.



    두번째

    예를들어

    form1 : MainForm

    form2 : StayOnTop form2 에 Public에 변수 선언

    public

    { Public declarations }

    sTest : String;

    end;



    form3 : ChildForm 이라고 할 때

    //////////////////////////////////

    form3 Unit에서는

    Form2.sTest := '값';

    ////////////////////////////////

    저는 이런식으로 사용했는데 잘 되던데요. 그럼 즐코딩하세요~~



    onlyna wrote:

    > 그런데 StayOnTop style의 form은 MDIChild form이 아니므로 폼의 이름을 비교하는

    > 부분에 걸리지 않습니다. 결국은 StayOnTop이 Open되어 있는 지를 체크가 안됩니다.

    >

    > 그리고 두번째 질문의 MDIChild Form의 Public에 변수를 선언하고 변수에 값을 넣고

    > StayOnTop window에서 그변수를 사용하는 데 undefine되어 있다고 합니다.

    > StayOnTop window에 당연히 MDIChild window를 참조하도록 하였습니다.

    >

    > 답변주세요.

    >

    > 한윤희 wrote:

    > > 저도 이곳에서 자료를 많이 얻어가는 한사람으로서 도움이 되시길....

    > >

    > > var DHandle : THandle;

    > > DHandle := 0;

    > >

    > > for k := MDIChildCount-1 downto 0 do

    > > begin

    > > //폼의 이름으로 비교.

    > > if MDIChildren[k].Name = 'StayOnTop의 FormName' then begin

    > > DHandle := MDIChildren[k].Handle;

    > > SendMessage(DHandle,WM_CLOSE,0,0);

    > > end;

    > > end;

    > >

    > > 두번째 같은 경우는 chileform의 public 에 변수를 선언하고 쓰심 어떨런지...

    > > 질문의 내용과 맞는 답변인지는 모르겠네요.

    > >

    > > onlyna wrote:

    > > > 안녕하세요. 델파이 초보자입니다.

    > > > MDI에서 MDIChild를 open하고 그위에 StayOnTop 으로 window를 open하였습니다.

    > > > 그런데 이 StayOnTop window는 특정 MDIChild window가 Close되면 자동으로 Close

    > > > 하고 싶습니다. 그러기 위해서 StayOnTop Window가 이미 Open되어 있으면 그냥 MDIChild window와 StayOnTop Window를 모두 close시키고 StayOnTop Window가

    > > > Open되어 있지 않은 상태면 MDIChild Window만 close시켜야 합니다.

    > > >

    > > > 그래서 이 StayOnTop Window가 이미 Open되어 있는 지를 체크하는 방법을 알고 싶습니다.

    > > >

    > > > 그리고 MDIChild Window에서 StayOnTop을 Open할때 MDIChild에서 Parameter를

    > > > 넘길수 있는 방법과 StayOnTop Window를 Close시 특정 Parameter value를 MDI

    > > > Child Window에 Return하는 방법은 없습니까?

    > > >

    > > > 많은 답변 부탁드립니다.

    > > >

    • 휴델맨
    • 2001.02.02 01:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 바보감자
      2001.02.02 01:26
      휴델맨 wrote: > 안녕하세요... > 코딩으로 어떤 특정키 (F1) 를 누른 효과를 내려면 어떡해야 될까요......
    • 김광섭
      2001.02.02 02:14
      zerodog wrote: > MDI폼을 실행 했을때여.... 자식폼들이 계단식으로 나오는데여... 첫번째 자식폼을 > ...
    • 맥스맨
    • 2001.02.02 00:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아폴론
      2001.02.02 01:04
      맥스맨 wrote: > dm.Database1.StartTransaction; > try> > dm.Table1.Delete; > dm.Database1.Commit...
    • 맥스맨
      2001.02.02 01:10
      아래 처럼 해서..삭제가 되는데....결정적인것은... commit가 작동안되는거 같아요... 저장이 안된다는 ...
    • 맥스맨
    • 2001.02.02 00:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 바보감자
      2001.02.02 00:49
      맥스맨 wrote: > 쿼리문장으로 나온 데이타를 디비그리드로 뿌려준후 거기에서 선택하여서..행자체를 삭제...
    • 골든락
    • 2001.02.02 00:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Hub
      2001.02.02 00:38
      골든락 wrote: > 안녕하세요? 델피언여러분. > > Treeview에서 팝업메뉴를 사용하고 싶은데 안되네요? ...
    • 골든락
      2001.02.02 01:19
      Hub wrote: > 골든락 wrote: > > 안녕하세요? 델피언여러분. > > > > Treeview에서 팝업메뉴를 사용하...
    • 조덕진
      2001.02.01 23:49
      안녕하세요. 델초봅니다. Form의 OnShow 이벤트에 코딩을 해보시기 바랍니다. 초보라서 답변이 허접...
    • 미남과암야수
      2001.02.02 00:01
      해봤는데... 그것두 아니네요... 관심가져 주셔서 감사합니다... 추운데 건강 조심하세요...
    • zerodog
    • 2001.02.01 23:15
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 조덕진
      2001.02.01 23:47
      안녕하세요. 델초봅니다. 초보의 생각으로는 해당 Child폼의 OnClose 이벤트에 Action := caFree; 하고 ...
    • 승추니
      2001.02.01 23:14
      zerodog wrote: > Main폼을 MDI폼으로 만들고여 다른 폼들은 MDI자식폼으로 했는데여.. > 자식폼을 종료...
    • zerodog
      2001.02.01 23:38
      > 그렇게 되있는데도 그러는데여... 왜그러져..
    • 승추니
      2001.02.01 23:40
      zerodog wrote: > 승추니 wrote: > > zerodog wrote: > > > Main폼을 MDI폼으로 만들고여 다른 폼들은 M...
    • zerodog
      2001.02.01 23:56
      승추니 wrote: > zerodog wrote: > > 승추니 wrote: > > > zerodog wrote: > > > > Main폼을 MDI폼으로...
    • 미남과암야수
      2001.02.01 23:29
      편법입니다... 아래처럼함 일단 안보이긴 안보입니다... // 5번째 컬럼...안보이게 하기... Strin...
    • 조덕진
      2001.02.01 23:52
      안녕하세요. 델초봅니다. Query 결과값을 변수에 대입하는 것은 이렇습니다. varField1 := Query.Fie...
    • 승추니
      2001.02.01 23:24
      델파이 궁금이가 ..... wrote: > 인터베이스에서 사용자를 추가하는 방법좀 알려주세요 > 처음에는 sysd...
    • 맥스맨
    • 2001.02.01 22:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김범수
      2001.02.01 23:04
      맥스맨 wrote: > 디비 그리드에서 현재 선택한 행 또는 열을 어떻게 삭제 하나요.... > --------> 이...
    • 김광섭
      2001.02.02 02:56
      임성오 wrote: > 인스톨쉴드로 설치프로그램을 만들었습니다. > 근데 인스톨 도중에 실행파일일 실행됩니...
    • nogae
    • 2001.02.01 21:10
    • 0 COMMENTS
    • /
    • 0 LIKES
    • kiki
    • 2001.02.01 21:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2001.02.02 03:19
      kiki wrote: > 프로그램에 데이터모듈 두개를 썼습니다. > 두개에 같은 테이블이 있는데요... > > wi...
    • 초보
    • 2001.02.01 21:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 초보
    • 2001.02.01 20:56
    • 0 COMMENTS
    • /
    • 0 LIKES
    • heyyou
    • 2001.02.01 20:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • hbesthee
      2001.02.02 01:17
      가물가물한 기억에 종료 메시지를 보내는 것은 맞습니다. 하지만, 데이터를 전송중이었다면, 명령모드가 ...
    • ^-_-^
      2001.02.02 09:53
      yo` ^^;; 이번에 오라클로 연동하는 작업을 하면서 win98,2000,NT 에다가 오라클을 설치하고 연동을 해...
    • onlyna
    • 2001.02.01 19:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 한윤희
      2001.02.01 21:09
      저도 이곳에서 자료를 많이 얻어가는 한사람으로서 도움이 되시길.... var DHandle : THandle; DHa...
    • onlyna
      2001.02.01 23:35
      그런데 StayOnTop style의 form은 MDIChild form이 아니므로 폼의 이름을 비교하는 부분에 걸리지 않습니...
    • 한윤희
      2001.02.02 00:39
      그렇다면 Childform종료시에 ///////////// DHandle := findwindow('Tform2',nil); //핸들값리턴 ...