procedure TForm1.ToolButton5Click(Sender: TObject);
var
ActiveForm: TForm;
begin
ActiveForm := Screen.ActiveForm;
If ACtiveForm.Caption = Form2.Caption Then
Begin
Form2.StringGrid1.Options := [goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking];
End;
end;
메인폼(Form1)에있는 Button5을 클릭하면 여섯개의 서브폼중에서
Form2(서브폼)이 활성화되어있으면 Form2의 스트링그리드의 Options를 정의할려고
합니다.내가 보기에는 문제가 없는데
If ActiveForm.Caption = Form2.Caption Then에서
ActiveForm.Caption은 Form2라고 나오는데
Form2.Caption은 널값이 나옵니다. 당연히 Form2.Caption에는 Form2라는 값이있구요.
무엇이 문젠가요?
> procedure TForm1.ToolButton5Click(Sender: TObject);
> var
> ActiveForm: TForm;
> begin
> ActiveForm := Screen.ActiveForm;
> If ACtiveForm.Caption = Form2.Caption Then
> Begin
> Form2.StringGrid1.Options := [goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking];
> End;
> end;
>
> 메인폼(Form1)에있는 Button5을 클릭하면 여섯개의 서브폼중에서
> Form2(서브폼)이 활성화되어있으면 Form2의 스트링그리드의 Options를 정의할려고
> 합니다.내가 보기에는 문제가 없는데
> If ActiveForm.Caption = Form2.Caption Then에서
> ActiveForm.Caption은 Form2라고 나오는데
> Form2.Caption은 널값이 나옵니다. 당연히 Form2.Caption에는 Form2라는 값이있구요.
> 무엇이 문젠가요?
그냥 Handle을 비교하시면 문제없이 될 것 같습니다.
아래 형태면 될듯 하네요..
var H: Hwnd;
begin
H:= GetForeGroundWindow;
if H<>Form2.Handle then
begin
...
end;
end;
한번 해 보시고 안되면 다시 질문 올려주세요~
그럼 즐거운 프로그래밍 하시길..