Q&A

  • 폼없는 유닛...
아래 코딩은 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;

2  COMMENTS
  • Profile
    블랙봉 2001.05.16 19:25
    허접 wrote:

    > 아래 코딩은 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 같은 것도 필요없을 테니까요.

  • Profile
    허접 2001.05.16 19:50
    정말 간단했군요...

    역시 고수와 하수와 차이는 이런데서 나는 모양입니다...

    정말 감사합니다...

    답변 안해주셨음 하루종일 엉뚱한 짓만 할뻔했군요...



    좋은 하루되세요...



    p.s:혹시 Black}{all님과 어떤 연관이 있으신 분인가여?



    블랙봉 wrote:

    > 허접 wrote:

    > > 아래 코딩은 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 같은 것도 필요없을 테니까요.