아래 코딩은 fMenu1(차일드 폼입니다...)에서 콤보박스에 값을 때려 넣는
프로시져입니다...
콤보박스 이름을 변수로 받습니다...
근데 여러개의 차일드 폼에 똑같은 코딩이 들어 갑니다...
그래서, 걍~~ 폼 없는 유닛(사용자 정의 함수나 전역변수가 정의 되있습니다.)에다
이 프로시져를 함 넣어서 모든 폼에서 가져다 써볼라고 하는데
별짓을 해두 안되내요...
제가 넘 터무니 없는 생각을 했나요...
procedure TfMenu1.pSet_Name_Sido(strCombo:string); // 시도이름 세팅
var
i : word;
begin
if strCombo = '' then
Exit;
TComboBox(FindComponent(strCombo)).Clear;
for i := 0 to wCnt_Sigun - 1 do
begin
if recpSigun[i].strCode_Sigun = '00' then
TComboBox(FindComponent(strCombo)).Items.Add(recpSigun[i].strName_Sido);
end;
if TComboBox(FindComponent(strCombo)).Items.Count < 11 then
TComboBox(FindComponent(strCombo)).DropDownCount := TComboBox(FindComponent(strCombo)).Items.Count
else
TComboBox(FindComponent(strCombo)).DropDownCount := 10;
end;
> 아래 코딩은 fMenu1(차일드 폼입니다...)에서 콤보박스에 값을 때려 넣는
> 프로시져입니다...
> 콤보박스 이름을 변수로 받습니다...
>
> 근데 여러개의 차일드 폼에 똑같은 코딩이 들어 갑니다...
> 그래서, 걍~~ 폼 없는 유닛(사용자 정의 함수나 전역변수가 정의 되있습니다.)에다
> 이 프로시져를 함 넣어서 모든 폼에서 가져다 써볼라고 하는데
> 별짓을 해두 안되내요...
>
> 제가 넘 터무니 없는 생각을 했나요...
>
> procedure TfMenu1.pSet_Name_Sido(strCombo:string); // 시도이름 세팅
> var
> i : word;
> begin
> if strCombo = '' then
> Exit;
>
> TComboBox(FindComponent(strCombo)).Clear;
>
> for i := 0 to wCnt_Sigun - 1 do
> begin
> if recpSigun[i].strCode_Sigun = '00' then
> TComboBox(FindComponent(strCombo)).Items.Add(recpSigun[i].strName_Sido);
> end;
>
> if TComboBox(FindComponent(strCombo)).Items.Count < 11 then
> TComboBox(FindComponent(strCombo)).DropDownCount := TComboBox(FindComponent(strCombo)).Items.Count
> else
> TComboBox(FindComponent(strCombo)).DropDownCount := 10;
> end;
함수의 인자를 콤보박스 이름이 아니라 콤보박스를 그대로 넘기시는게 나을것 같은데요.
그러면 FindComponent 같은 것도 필요없을 테니까요.