안녕하세요 언제나 초보 바보감자입니다
제어가능합니다..
함수만 이용하실꺼면
핸들을 찾아서 메세지를 날려주시는게 제일 편하실듯 싶습니다....
예를들어.. 다른폼의 스트링 그리드를 스크롤 할려면
procedure TForm2.Button1Click(Sender: TObject);
var
wnd: HWND;
begin
Wnd := FindWindow(nil, PChar('form1'));
if Wnd <> 0 then begin
Wnd := Findwindowex(wnd, 0, 'TStringGrid', '');
if Wnd <> 0 then begin
begin
SendMessage(wnd, WM_VSCROLL, 1, 0);
end;
end;
end;
end;
이렇게 메세지를 넣어줍니다.
그럼 저 form1에있는 스트링그리드가 스크롤이 되지요..밑으로..
그럼 만약 그 스크롤되었을때 처리하는 이벤트가 있다면
처리가 되겠지요..
안녕하세요 바보감자님
근데 form1으로 FindWindow를 하셨는데
form1인지 알수 없는 상황에서 자기를 부른 부모윈도우(어떤 윈도우인지는 모름)의 핸들을 찾아서 제어를 할수는 없나요?
그리고 에디트에 값을 넣으려고 하는건데요..
예를 들면 우편번호 찾기 같은경우에 우편번호 찾기 버튼을 누르면
새로 다이얼로그 박스가 떠서 그것을 띄운 윈도우의 화면에
값을 뿌려주는 것 같은 식으로 말입니다
도움주셔서 감사합니다.
한번만 더 도와주세요
안녕하세요 언제나 초보 바보감자입니다..
^^ 자 이부분을 보십시오..
Wnd := FindWindow(nil, PChar('form1'));
실행되고있는 윈도우 중에서
caption ... 그 윈도우 상단 파란곳에 쓰여있는 글 있죠.?
그게 form1인것을 찾으라는 뜻입니다..
그럼 저 위에부분은 그 프로그램에 나와있는것을 넣어 주면 되겠지요
처음 부분의 인자는 클래스명을 넣어주는곳이구요..
실행시킬 프로그램의 클래스 이름을 얻을려면, 양병규님의 스파이를 사용하세요 ^^ 다른 프로그램도 많구요..
델파이의 클래스 이름은 "TAppBuilder" 입니다..
그리고에디트에 특정 내용을 입력하시려면...
검색하면 많은데......
SendMessage(wnd, WM_SETTEXT, 0, LongInt(PChar('akaka')));
이렇게 실핼해보시면 될듯..
에디트에 값을 쳐 넣을려면 에디트의 핸들을 찾아야겠지요.?
제가 스트링 그리드 찾았던거처럼 그 핸들 가지고 다시 한번 찾아야합니다.
^^
도움이 좀 되셨는지...?
^^ 수고하세요 !!
제어가능합니다..
함수만 이용하실꺼면
핸들을 찾아서 메세지를 날려주시는게 제일 편하실듯 싶습니다....
예를들어.. 다른폼의 스트링 그리드를 스크롤 할려면
procedure TForm2.Button1Click(Sender: TObject);
var
wnd: HWND;
begin
Wnd := FindWindow(nil, PChar('form1'));
if Wnd <> 0 then begin
Wnd := Findwindowex(wnd, 0, 'TStringGrid', '');
if Wnd <> 0 then begin
begin
SendMessage(wnd, WM_VSCROLL, 1, 0);
end;
end;
end;
end;
이렇게 메세지를 넣어줍니다.
그럼 저 form1에있는 스트링그리드가 스크롤이 되지요..밑으로..
그럼 만약 그 스크롤되었을때 처리하는 이벤트가 있다면
처리가 되겠지요..
즐푸하세요 ^^