Q&A

  • 폼의 핸들에 대해서
안녕하세요
코딩을 하다가 막히는 부분이 생겨서 질문 드립니다
쓰레드를 사용해서 구현하는 부분인데 버튼을 클릭하면 쓰레드를 생성해서
쓰레드함수를 구동시키는 부분인데 이상하게도 쓰레드 함수를 구동하면서
억세스 에러가 발생합니다.
왜 쓰레드함수에서 Form1부분을 찾지 못하는지 도저히 이해가 안갑니다.
다른 테스트 프로그램에서는 아래와 같이 코딩해도 잘 찾는데 이상하네요
혹시 이런경우가 있으시면 답변을 주시면 감사하겠습니다.
참고로 이폼은 MDI의 차일드폼(form1)이며 메인폼(mianform)에서는 억세스가 잘됩니다.
만약 이경우에 있어 form1을 찾지못한다면 hMyForm을 이용해서 Form1.Edit2.text에 접근할 수 있는 방법은 없는지...
구체적으로 설명주시면 감사하겠습니다.

function ThreadFunc1(Info:Pointer): integer; stdcall;

begin
  mainform.edit2.text:='1' //이부분을 잘됨 메인폼
  Form1.Edit2.text:='1';  //이부분에서 억세스 에러가 발생
  ExitThread(4);

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ThreadId1: DWORD;
begin
  inherited;
  hMyForm :=  handle;
  ThreadHandle1 := CreateThread(nil, 0, @ThreadFunc1, nil, 0, ThreadId1);
  if ThreadHandle1 = 0 then
  ShowMessage('Thread 생성실패');
end;
1  COMMENTS
  • Profile
    바보감자 2003.06.14 01:00

    안녕하세요 언제나 초보 바보감자입니다.


    제가 확인을 안해봐서 잘몰르겠지만.
    제가 테스트는 안해봤는데
    이함수를 폼에 포함시켜보시겠습니까.?
    안되는 부분만 뗘서 올리셔두 좋을듯 싶네요.
    그럼 즐푸하세요.