|
또한번 감사드립니다.
일단 제가 호출을 한적은 없습니다..ㅠㅠ 이벤트 연결도 잘되어있구요
그리고 말씀하신대로 메모 올려서 출력해봤는데도 Click이 Down보다 먼저 출력되네요..
참 이상한일입니다.. 적용하기전에 먼저 테스트할땐 잘됐는데 막상 프로젝트에 연결하려니
이렇게 엉키네요..
일단 극약처방으로 두 이벤트 실행내용을 바꿨는데 아무래도 Down일때 Modal창이 뜨는게 너무 거슬리네요 ㅠ
원랜 MouseDown일땐 그냥 색만 바꾸는거였는데 ㅠㅠ 어헝
비록 완전한 해결은 아니지만 친절히 답변해주셔서 감사합니다!
장성호 님이 쓰신 글 :
: 코딩으로 얼마든지 Onclick이벤트를 발생시켜줄수 있습니다.
:
: 가량 예를 들어
: 다음과 같은 함수를 호출하면
: Control->Click() //
:
: Control의 OnClick이벤트가 호출됩니다.
:
: 아니면 직접 다음과 같이 호출해줄수도 있구요
: Butto1Click(NULL);
:
: --------------------------------------------------
:
: 빈프로젝트에서 테스트 해보세요
: 어딘가에 코딩이 꼬여서 그럴수도 있습니다.
:
: 그리고 또한 Object-Inspector의 이벤트 연결을 확인해 보세요
: 함수이름은 StringGrid1OnClick이지만
: 다른 이벤트에 연결되어있을수도 있습니다.
:
: 또 ..
: Form위에 TMemo하나 올려서 이벤트 발생할때 Log를 남겨서 이벤트 순서를 체크해보세요
: Focus가 Message폼으로 갔다가 오면 정확한 발생순서대로 발생하지 않습니다.
:
: Focus가 Grid에 있다가 MouseDown 후에 곧바로 Message폼으로 가버리고..
: 다시 Grid로 Focus가 오더라도..
: MouseDown에서 Up을 다시 해야합니다. 즉 MouseDown-Up 사이에 Focus가 다른 Control로 이동하면 안됩니다.
:
: Focus가 이동되어버리면 OnClick이 발생할수 없습니다.
: 그런데도 발생한다면 다른 부분을 살표봐야할것입니다
:
: 그럼..
:
:
: 궁그미 님이 쓰신 글 :
: : 일단 답변달아주셔서 정말 감사합니다..ㅠㅠ
: :
: : 그래서 다른 실험을 해봤는데 Down일때 ShowMessage로 Down출력,
: : Click일때 또한 ShowMessage로 Cilck을 출력했는데
: :
: : 결과적으로 Click이 먼저 뜨고 바로 Down메세지가 뜹니다 ㅠㅠ
: : 이것또한 말씀하신 이유때문일까요??힝 ㅠㅠ
: :
: : **추가
: :
: : 아 그리고 말씀듣고 다시 관찰해보니 Click이벤트가 마우스를 떼기 전에 일어납니다 ㅠㅠ
: : 그러니까 MouseUp이 일어나기도 전에 Click이벤트가 일어나요
: : 이걸 먼저 말씀드렸어야하는데 ㅠㅠ
: :
: : 장성호 님이 쓰신 글 :
: : : 논리적으로 OnClick이 MouseDown보다 빨리 발생할수가 없습니다.
: : :
: : : 마우스 동작이 다음과 같은 순으로 일어나겠죠
: : : Down->Move->Up
: : :
: : : 그럼 이벤트는
: : : OnMouseDown
: : : OnMouseMove ( 움직이지 않으면 발생하지 않음)
: : : OnClick ( Mouse왼쪽버튼을 영역안에서 Up해야 발생함)
: : : OnMouseUp
: : :
: : : 위에서 OnClick이벤트는
: : : 마우스 왼쪽버튼을 Up해야 발생합니다
: : : 단지 OnMouseUp이벤트보다 먼저 이벤트를 호출해 줍니다.
: : : 그리고 Control영역 안에서 MouseUp해야 OnClick이벤트가 발생하구요
: : :
: : : -------------------------------------------------------------------------
: : : 결론적으로
: : : OnClick이 OnMouseDown보다 먼저 발생한것이 아니라
: : : OnMouseDown이후에 화면갱신이 늦어서, 늦게 발생한것처럼 보이는것이 아닌가 하는 생각이 듭니다.
: : :
: : : 그럼..
: : :
: : : 궁그미 님이 쓰신 글 :
: : : : 안녕하세요!! 질문 올립니다.
: : : :
: : : : StringGrid에 MouseDown과 OnClick이벤트를 줬는데요
: : : : MouseDown하면 선택한 Row의 색이 눈에띄게 바꾸는거고,
: : : : OnClick하면 해당 Row의 정보를 Modal로 띄우는 겁니다.
: : : :
: : : : 엄청 짧고 작은 프로그램에서 돌릴땐 분명히 잘돌아갔는데
: : : : 데이터가 크고 긴프로그램에서 하니까 Click이벤트 후에 Down이벤트가 일어납니다 ㅠㅠ
: : : : 그러니까 색이 먼저 바뀌는게 아니고 창이먼저 뜬다음에 색이 바뀌어요 ㅠㅠ
: : : :
: : : : 이게 왜이러는걸까요??
: : : :
: : : : 아 그리고 Down이벤트 할때 색바뀌는게 맨처음에 StringGrid에 진입하면 첫줄이 바뀌던데
: : : : 포커스때문에 그러는것같은데 이 포커스 아예 없앨 방법이 있나요?
: : : :
: : : : 그럼 답변달아주시면 감사하겠습니다 ㅠㅠ
: : : :
|