http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=703
여기글을 참고해서 작업을 하려고 합니다.
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;
넣었고
procedure TForm1.AppMessage(var Msg:tagMSG;var Handled: boolean);
var sClsName : String;
begin
if (Msg.message = wm_lbuttondown) then begin
end;
end;
넣었습니다.
제가 원하는 작업은 마우스 왼쪽버튼을 클릭할때 Tedit이면 Tedit에 특정작업을 할 예정입니다.
우선은 이걸로 해도 안됩니다.
1번
if Screen.ActiveControl is TEdit then TEdit(Screen.activeControl).Caption := 'A';
2번
sClsName:=Screen.ActiveControl.Name;
if sClsName='TEdit' Then TEdit(Screen.ActiveControl).Caption := 'A';
어딘가 잘못된거 같은데 모르겠습니다.
그리고 다른문제가 하나 더있습니다.
sClsName:=Screen.ActiveControl.Name; 이렇게 가져올때 메인폼 클릭을 하면 어플리케이션 에러가 납니다.
그래서 화면명을 가져와서 이 화면이 아닐때는 실행을 안하게 하려고
Screen.ActiveForm.Name 이걸로 가져와서 하는데도 어플리케이션 에러가 납니다.
근데 에러가 한번만 나고 다시 클릭했을시에는 제대로 화면명을 가져옵니다.
현재 화면여는 방식은 폼이 열리면 로그인창이 열리고 로그인이 되고 메인폼 클릭했을때 에러
다시 클릭했을때 제대로 가져오고요.
메인폼에서 다른폼을 열고 화면을 닫았을때 메인폼 클릭시 오류 -> 다시 클릭 오류가 없는데
조언좀 부탁드립니다. ㅠㅠ
|