A, B, C 라는 폼이 있습니다...........
A 라는 폼은 검색을 위한 검색 창인데요..........
B 도 A 를 사용하고 C 도 A를 사용하게 하고 싶습니다.....
문제는 A 에 있는 내부 변수인데.... 이 변수가 호출하는 폼이 누구냐에 따라 값이 달라지게 만들고 싶습니다.......
지금은 일단 B나 C가 A를 호출할때마다 공용변수를 세팅하게 만들어서 돌아가기는 한데.......
이렇게 만들면 공용변수가 있는 폼을 항상 메모리에 띄워 놓아야 합니다.....
if made_by_gy.buzzer = True then //폼 B 의 내부 변수가 세팅되어 있을 경우( B 가 호출하였을 경우)
sel_team := made_by_gy.cd_team.items.Strings; //폼 B 의 내부 변수중 하나를 sel_team(폼 A의 변수) 에 할당
else
sel_team := locationform.cd_team.items.Strings; //폼 C 의 내부 변수중 하나를 sel_team(폼 A의 변수) 에 할당
end;
프로그램 해설.... 위 코드는 폼 A 의 formcreate 이벤트 함수입니다....
sel_team 은 폼 A의 변수이고 이 폼을 생성시키는 놈이 누구냐에 따라 값을 다르게 만들려고 합니다.......
made_by_gy : 폼 B
locationform : 폼 C
좀 더 고급스럽게.....
if 폼 호출자가 폼 B 이면
어쩌구 저쩌구
else if 폼 호출자가 가 폼 C 이면
어쩌구 저쩌구
이렇게 바꾸려면 어떻게 해야 할까요....?
Owner나 Tag속성을 이용하시면 될거같네요...
A라는 폼을 동적으로 생성해서 호출한다면 Owner속성을 이용하시는 것이 좋구요. 아니면 Tag속성을 이용하세요...
// uses Owner
A := TAForm.Create(B);
...
if Owner is TBForm then
......
else if Owner is TCForm then
......
// uses Tag
A := TAForm.Create(...);
A.Tag := Integer(B);
......
if TObject(A.Tag) is TBForm then
......
else if TObject(A.Tag) is TCForm then
......
^^ 항상 즐코하세요...