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까지 깔려 있슴다..
아 돌아 버리겠다..~~~ ㅠㅠ
디버깅도 안되고 답답하실겁니다.
또한 이런버그는 잡기도 어렵고요.(T_T 전 최고 보름동안
헤메었어요)
이 버그는 메모리침범에 따른 현상일거에요.
디버깅모드로 바뀌었을때는 정상일 수 있지만 리얼모드에서는
에러가 나지요. 어디서 메모리 침범이 일어났는지 세세히 보는 수
밖에 없을걸로 사료됩니다.
move, fillcopy등등의 function을 이상없이 사용했는지 확인하시고..
그럼 델파이의 버그는 아니라는것을 강조하고 전 이만 사라지겠으메..