대충 다음과 같이하면 될것 같으데요
//TControl의 Caption프로퍼티가 protected로 되어있는데 public으로 변경한 class임
class TControlOpen: public TControl
{
public:
__property Caption;
};
//---------------------------------------------------------------------------
String __fastcall ConvertLangControl(String sOrgCaption)
{
String sNewCaption;
//실제 Converting 코드
return sNewCaption;
}
//---------------------------------------------------------------------------
void __fastcall ChangeAllControlCaption(TForm *frm)
{
if(frm==NULL)return;
//Form위오 모든 Control에 적용
for(int i=0;iControlCount;i++)
{
String sCap=((TControlOpen *)frm->Controls[i])->Caption;
((TControlOpen *)frm->Controls[i])->Caption =ConvertLangControl(sCap);
}
//현재 폼의 Caption에 적용
frm->Caption = ConvertLangControl(frm->Caption ); //
}
아래는 사용예 입니다.
//위 함수 사용 예
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//현재 폼에만 적용
ChangeAllControlCaption(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//어플리케이션 모든 폼에 적용
for(int i=0;iFormCount;i++)
ChangeAllControlCaption(Screen->Forms[i]);
}
//---------------------------------------------------------------------------
그럼..
김학수 님이 쓰신 글 :
: 폼에 올라가 있는 모든 컨트롤들의 한글 Caption을 영문 Caption으로 일괄적으로
: 바꿔주는 함수를 만들려고 합니다.
:
: 다음은 C#에서 구현한 소스 입니다.
: ===================================================================
: public static void SetLangControls(Control con){
: string strKOR, strFOR;
:
: strKOR = con.Text.Trim();
: strFOR = ConvertLangControl(strKOR);
:
: con.Text = strFOR;
:
: for(int i = 0; i < con.Controls.Count; i++){
: SetLangControls(con.Controls[i]);
: }
: }
: ===================================================================
:
: C Builder에서는 어떻게 해야 할까요?
|