Q&A

  • 도무지 알수 없는 현상. ㅡㅡ;;
form1 := TForm1.Create(self);
form1.showmodal;
if modalresult = mrOK then
       xxxxxxxxxxx;
form1.free   <------- 이넘땜시..

라고 한폼에서 쇼모달로 폼을 열고 결과치를 원래폼에 반환하는 형태 입니다.
(form1은 여기에서만 create 됩니다.)

근데 위와 같이 해버리면 원래폼의 디비그리드 셀클릭 이벤트를 타버려요..
fomr1.free 를 없애주면..
디비그리드의 셀클릭 이벤트를 타지 않구요...

free 하는것이 단순히 메모리에서 제거 해주는 것이 아니었던가요.
free를 해버리면... 원래폼의 디비그리드 셀클릭 이벤트를 타는지
도무지 아무리 해도 알수가 없습니다.

물론 위의 설명이 짧아서 대답 하시기에는 곤란하지만..
혹시 위와 같은 현상을 겪으신 분있으시면 좀 알려주세요..
그리고 의심가는 부분이 있으면 모두 말해 주시면 감사 하겠습니다.


아 참고로... form1.free 한 상태에서...
free의 윗부분(if문 안이라던가... create 부분이던가..)
윗부분에 찍어 놓고
디버깅 하면(F7키) 셀클릭 이벤트 안 탑니다. (결과도 안타는걸로 나옴)

그런데 셀클릭 이벤트에 마킹하고
디버깅하면 타더군요.(결과도 타는걸로 나옴)

정말 이상한 현상입니다.

이거 델파이 버그인지...
참고로 델파이5 패치 했음다..

운영체제는 윈2000이고 서비스팩2까지 깔려 있슴다..

아 돌아 버리겠다..~~~ ㅠㅠ

3  COMMENTS
  • Profile
    이중철 2002.01.18 06:44
    아래와 같은경우는 저도 여러번 있었어요..

    디버깅도 안되고 답답하실겁니다.

    또한 이런버그는 잡기도 어렵고요.(T_T 전 최고 보름동안

    헤메었어요)

    이 버그는 메모리침범에 따른 현상일거에요.

    디버깅모드로 바뀌었을때는 정상일 수 있지만 리얼모드에서는

    에러가 나지요. 어디서 메모리 침범이 일어났는지 세세히 보는 수

    밖에 없을걸로 사료됩니다.

    move, fillcopy등등의 function을 이상없이 사용했는지 확인하시고..

    그럼 델파이의 버그는 아니라는것을 강조하고 전 이만 사라지겠으메..

  • Profile
    이중철 2002.01.18 06:47
    form1 := TForm1.Create(self);
    form1.showmodal;
    if modalresult = mrOK then
           xxxxxxxxxxx;
    form1.free   <------- 이넘땜시..

    위의 문장에서 아무리 찾아도 문제가 없을거에요..

    다른데 있을테니 정확히 찾아보세요.

  • Profile
    채승호 2002.01.18 06:35
    이렇게 고치시고요...한번 해보시고요...

    try
        form1 := TForm1.Create(self);
        
        if form1.showmodal = mrOK then
           xxxxxxxxxxx;
      finally
       form1.free;  
    end;

    여기서 form1에서 버튼에... modalresult의 속성을 mrOK  두시면...

    그냥 어떤 버튼을 클릭하시더라고 그냥 쑤웅하고 모듈타고 끝나드라고요..

    그러니까... 리턴할 버튼의 속성을 mrNone의 바꾸시고...

    DbGrid onCellClick에서 modalResult := mrOk로 주셔서 코딩을 한번
    해보세요..

        
      
    • 전승곤
    • 2002.01.18 20:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 22:23
      이렇게 합쳐서 쿼리를 해보세여... report_query.sql.add('where (date_value||time_value  &...
    • 전승곤
      2002.01.19 00:23
      답변감사합니다. 가르켜 주신데로 하였는데요. type mismatch error가 발생합니다. 다시 자세히 좀 부탁...
    • 채승호
      2002.01.19 01:46
        죄송합니다... 저는 당연히 오라클 DB 라고 생각하고 문자형 필드이고   || ...
    • 전승곤
      2002.01.19 18:43
      그러면 paradox db면 사용할 수 있는 방법은 없습니까????? 죄송하지만 한번만 더.......
    • 홍미자
    • 2002.01.18 20:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김영범
      2002.01.19 03:15
      답변이 될런지는 모르겠으나 전 현재 델파이 5.0을 쓰고 있습니다. 보통 Resource는 델파이의 특정 콤...
    • 한만교
      2002.01.19 01:50
      프로젝트가 크다면 여러개로 나누세요  Application간 통신을해서 서로 자료를 주고받으면서...
    • 공성환
      2002.01.18 23:02
      정확한 답변은 아니지만... 지금 저도 같은현상으로 리소스를 줄이는 방법을 찾고있죠... 우선 전 델3인...
    • 홍미자
    • 2002.01.18 20:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2002.01.19 01:56
      제가 볼때는 Form3이 최초 ShowModal을 잡고있어서 그런거 같은데요.. 그러니까 Form1을 ShowModal...
    • 까비
    • 2002.01.18 20:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 23:12
         TBlobField(FieldByName('이미지필드명')).BlobType := ftBlob;    TBlobField(Fi...
    • 이영주
    • 2002.01.18 20:17
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 22:33
        양쪽다 DBGird인것으로 보니까...   모두 DB와 연결이 되어 있는 것으로 보니까....
    • 장영철
      2002.01.19 02:36
      답변에 감사합니다. 조건을 정해 넣어 한큐에 밀어 넣어 주면 좋을것 같은데 초심자라 아직 감이 안오...
    • 머슴
      2002.01.19 04:00
        --     
    • 장영철
      2002.01.21 20:09
      Query1에 있는 모든 것을 Query2로 옮기는 문제가 아니라 DBGrid1에서 선택된 레코드만 DBGrid2(즉 Query2...
    • ccang111
      2002.01.19 04:59
      어제 오늘 고심하다가...답변도 해주시지도 않고...쩝... 제 컴말고 다른 컴에서 F9눌러서 실행하고 실행...
    • 김태훈
    • 2002.01.18 19:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 버섯
      2002.01.18 20:22
      (1) Stored Procedure 로 여러개의 레코드를 한꺼번에 실행하는방법 (2) 클라이언트쪽에 데몬프로그램을...
    • 성더기
      2002.01.18 20:59
      일단 굳이 재실행을 하실 필요는 없을듯합니다 쿼리나 테이블을 닫았다 열면 적용되어 있을겁니다 단 ...
    • KARA
      2002.01.18 21:37
    • 성더기
      2002.01.18 21:03
      일단 쿼리컴포넌트로 불러온 자료는 ReadOnly입니다 편집이 불가능 하다는 말입져... 꼭 편집을 하고 ...
    • 김영일
      2002.01.19 04:18
    • 하기현
    • 2002.01.18 09:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 19:13
      통상 insert가 select에 비해 무척 느린 이유 중 하나로 인덱스의 존재를 들 수 있는 데, 상황에 따라 다...
    • 권희수
      2002.01.18 18:59
      한건 인서트 할때마다 커밋을 하면 당근 시간이 많이 걸림니다. 앞의 분이 지적하신부분도 속도저하를 ...
    • 이중철
      2002.01.18 12:25
      첫째로 기존의 데이타건수가 10만건 이상일때의 대량 데이타 입력은 해당 테이블의 인덱스키를 없애고 ...
    • 전기봉
    • 2002.01.18 07:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2002.01.18 07:18
      엑셀시트의 해당영역을 문자로 바꾸면 될거에요 VBSCRIPT는 다음과 같네요.     R...
    • 최영근
      2002.01.18 19:31
      혹시 MS internet explorer 안에 다른 프로그램을 실행하시는 것입니까 ? 아니면 새로운 웹 브라우저를 ...
    • 권동훈
      2002.01.18 20:43
      안녕하세요? 새로운 웹브라우저를 만들기에는 시간이 너무 부족해서 익스플로러안에 윈어플리케이션을 실...
    • 꿈의대화
      2002.01.18 08:46
      .
    • 권동훈
      2002.01.18 20:47
      안녕하세요? 꿈의대화님.. 닷넷... 저도 생각은 해봤었는데 그 분야에 워낙 아는게 없어서..^^ 여기는 ...
    • 최경습
    • 2002.01.18 06:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채승호
      2002.01.18 06:44
      Dbedit는 dataSet만 연결되면 자동으로 DB와 연결이 됩니다... 따라서 DataSet의 절대적인 영향을 받...
    • 강성호
    • 2002.01.18 06:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2002.01.18 06:44
      아래와 같은경우는 저도 여러번 있었어요.. 디버깅도 안되고 답답하실겁니다. 또한 이런버그는 잡기...
    • 이중철
      2002.01.18 06:47
      form1 := TForm1.Create(self); form1.showmodal; if modalresult = mrOK then    &nbs...
    • 채승호
      2002.01.18 06:35
      이렇게 고치시고요...한번 해보시고요... try     form1 := TForm1.Create(self...
    • 이영주
    • 2002.01.18 05:12
    • 0 COMMENTS
    • /
    • 0 LIKES