Delphi 분류
[펌] 폼 크기에 맞게 자동으로 컴포넌트 크기 조절하기
컨텐츠 정보
- 31,330 조회
- 0 추천
- 목록
본문
// 전체 적으로 들어 감
// ========= 컴포넌트 크기 자동 조절 =======================
typedef struct{
int Width;
int Height;
int Left;
int Top;
}SDefaultContorl;
// ========= 컴포넌트 크기 자동 조절 =======================
// 전체 적으로 들어 감
typedef struct{
int Width;
int Height;
int Left;
int Top;
}SDefaultContorl;
// ========= 컴포넌트 크기 자동 조절 =======================
// 전체 적으로 들어 감
// 각 폼에 들어감
int DefaultWidth;
int DefaultHeight;
int DefaultHeight;
// 각 폼에 들어감
void __fastcall TfrmGraphicOver::FormCreate(TObject *Sender)
{
{
// ========= 컴포넌트 크기 자동 조절 =======================
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
i = 0;
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
defCtrl = new SDefaultContorl;
defCtrl->Width = winCtrl->Width;
defCtrl->Height = winCtrl->Height;
defCtrl->Left = winCtrl->Left;
defCtrl->Top = winCtrl->Top;
defCtrl->Width = winCtrl->Width;
defCtrl->Height = winCtrl->Height;
defCtrl->Left = winCtrl->Left;
defCtrl->Top = winCtrl->Top;
winCtrl->Tag = (int)defCtrl;
i++;
}
DefaultWidth = Width;
DefaultHeight = Height;
i++;
}
DefaultWidth = Width;
DefaultHeight = Height;
// ========= 컴포넌트 크기 자동 조절 =======================
}
//—————————————————————————
}
//—————————————————————————
void __fastcall TfrmGraphicOver::FormResize(TObject *Sender)
{
{
// ========= 컴포넌트 크기 자동 조절 =======================
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
int iW, iH, iL, iT;
float fZoomX, fZoomY;
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
int iW, iH, iL, iT;
float fZoomX, fZoomY;
i = 0;
fZoomX = float(Width) / float(DefaultWidth);
fZoomY = float(Height) / float(DefaultHeight);
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
defCtrl = (SDefaultContorl *)winCtrl->Tag;
fZoomY = float(Height) / float(DefaultHeight);
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
defCtrl = (SDefaultContorl *)winCtrl->Tag;
iW = defCtrl->Width * fZoomX;
iH = defCtrl->Height * fZoomY;
iL = defCtrl->Left * fZoomX;
iT = defCtrl->Top * fZoomY;
iH = defCtrl->Height * fZoomY;
iL = defCtrl->Left * fZoomX;
iT = defCtrl->Top * fZoomY;
// if(iW < 1) iW = 1;
// if(iH < 1) iH = 1;
// if(iL < 1) iL = 1;
// if(iT < 1) iT = 1;
// if(iH < 1) iH = 1;
// if(iL < 1) iL = 1;
// if(iT < 1) iT = 1;
i++;
if(iW < 1) continue;
if(iH < 1) continue;
if(iL < 1) continue;
if(iT < 1) continue;
if(iH < 1) continue;
if(iL < 1) continue;
if(iT < 1) continue;
winCtrl->Width = iW;
winCtrl->Height = iH;
winCtrl->Left = iL;
winCtrl->Top = iT;
}
winCtrl->Height = iH;
winCtrl->Left = iL;
winCtrl->Top = iT;
}
// ========= 컴포넌트 크기 자동 조절 =======================
}
//—————————————————————————
//—————————————————————————
void __fastcall TfrmGraphicOver::FormDestroy(TObject *Sender)
{
{
// ========= 컴포넌트 크기 자동 조절 =======================
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
TWinControl *winCtrl;
SDefaultContorl *defCtrl;
int i;
i = 0;
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
defCtrl = (SDefaultContorl *)winCtrl->Tag;
while(i < ComponentCount){
winCtrl = (TWinControl *)Components[i];
defCtrl = (SDefaultContorl *)winCtrl->Tag;
delete defCtrl;
winCtrl->Tag = NULL;
i++;
}
winCtrl->Tag = NULL;
i++;
}
// ========= 컴포넌트 크기 자동 조절 =======================
}
//—————————————————————————
//—————————————————————————
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.