::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-06 21:02:52, Hit : 4633, Vote : 1128
 화면변경시 콤포넌트 위치와 크기를 조정

// 아래 예제의 Button1, RadioButton1, Memo1, Label1은
// 임의 위치에 올려놓고 실행하시면 됩니다

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    RadioButton1: TRadioButton;
    Memo1: TMemo;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  oldwidth, oldheight: integer;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // 이전크기 저장
  oldheight := Height;
  oldwidth  := Width;
end;

procedure TForm1.FormResize(Sender: TObject);
var
  i: integer;
  px, py, t: real;
begin
  for i := 0 to ComponentCount -1 do
    if (Components[i] is TControl) then
    begin
      // 이전크기와 변경된 크기의 비율을 구한다
      px := oldwidth / Width;
      py := oldheight / Height;

      // 아래 각각은 변동 비율을 반영한 코드
      t := (Components[i] as TControl).Top;
      (Components[i] as TControl).Top := Trunc(t/py);

      t := (Components[i] as TControl).Left ;
      (Components[i] as TControl).Left := Trunc(t/px) ;

      t := (Components[i] as TControl).height ;
      (Components[i] as TControl).height := Trunc(t/py) ;

      t := (Components[i] as TControl).width ;
      (Components[i] as TControl).width := Trunc(t/px) ;
    end ;

  // 이전크기을 현재크기로 수정
  oldheight := Height ;
  oldwidth  := Width ;
end;

end.






691   [일반/컴포넌트] ListView 의 컬럼별로 Sort (내림차순 포함)  김영대 2003/03/05 5191 1101
690   [일반/컴포넌트] 명령행 인자 받아오기  김영대 2003/03/05 7208 1882
689   [네트웍/인터넷] List of raw FTP commands  김영대 2003/03/05 7229 1894
688   [네트웍/인터넷] RFC: Request for Comments  김영대 2003/03/05 7756 2039
687   [네트웍/인터넷] 윈도우즈 소켓의 에러번호에 대한 설명  김영대 2003/03/05 7812 2703
686   [일반/컴포넌트] 파일의 해부  김영대 2003/03/05 6351 1694
685   [일반/컴포넌트] ListBox의 스크롤바를 움직여보자  김영대 2003/03/05 4495 1098
684   [일반/컴포넌트] PopupMenu의 특정 MenuItem으로 이동하기  김영대 2003/03/05 2898 783
683   [일반/컴포넌트] 데스크탑의 아이콘을 몽땅 움직여보자!!  김영대 2003/03/05 6394 1897
682   [일반/컴포넌트] 마우스커서를 특정위치로 이동시키기  김영대 2003/03/05 5813 1210
681   [일반/컴포넌트] 제어판의 applet 띄우기  김영대 2003/03/05 2844 765
680   [일반/컴포넌트] INI 파일이 저장을 안 해?  김영대 2003/03/05 4091 1086
679   [일반/컴포넌트] 마우스영역 제어하기  김영대 2003/03/05 3626 978
678   [일반/컴포넌트] 리스트뷰에서 동적으로 칼럼삭제하기  김영대 2003/03/05 5255 1406
677   [일반/컴포넌트] Interesting Delphi Keystrokes !  김영대 2003/03/05 3601 1064
676   [일반/컴포넌트] Application 수준에서 한글/영문 제한두기  김영대 2003/03/05 5999 1855
675   [데이터베이스] dBASE Table File Extensions  김영대 2003/03/05 4594 1296
674   [데이터베이스] Paradox Table File Extensions  김영대 2003/03/05 3662 1033
673   [일반/컴포넌트] 파일의 속성(Attribute) 읽기 / 바꾸기  김영대 2003/03/05 4039 1049
672   [데이터베이스] DBGrid 에서 수직 Scroll Bar 감추기  김영대 2003/03/05 4636 1266
671   [윈도우즈 API] 인터넷 링크 만들기  김영대 2003/03/06 4557 1271
670   [네트웍/인터넷] 내 PC의 IP주소는 ?  김영대 2003/03/06 5285 1229
669   [일반/컴포넌트] 문자열의 암호화(Password 처리) & INI 파일  김영대 2003/03/06 6291 1497
668   [윈도우즈 API] 윈도우의 타이틀바를 없애보자!  김영대 2003/03/06 4448 1356
667   [윈도우즈 API] 클립보드의 내용을 TXT 파일에 담아보자!  김영대 2003/03/06 6329 1762
666   [시스템] 프로세서를 생성시켜보자!  김영대 2003/03/06 4559 1214
665   [일반/컴포넌트] 델파이의 Object Inspector 모방  김영대 2003/03/06 3598 829
664   [시스템] 시스템의 각종 정보  김영대 2003/03/06 7534 1306
663   [데이터베이스] DBGrid 특정 Cell에 색상넣기  김영대 2003/03/06 7729 1585
662   [데이터베이스] DBGrid 의 특정필드만 Highlighting 시키기  김영대 2003/03/06 4663 1140
661   [COM/OLE] How to register an OCX  김영대 2003/03/06 5007 1171
660   [윈도우즈 API] "Windows 정보" About 화면 사용하기  김영대 2003/03/06 6441 1985
659   [일반/컴포넌트] 문자열에 한글이 있는지 검사  김영대 2003/03/06 3847 984
658   [일반/컴포넌트] TColor값을 16진수 문자열로 바꾸기  김영대 2003/03/06 6164 1775
  [일반/컴포넌트] 화면변경시 콤포넌트 위치와 크기를 조정  김영대 2003/03/06 4633 1128
656   [시스템] 마우스 포인터 속도 구하기  김영대 2003/03/06 5479 1715
655   [시스템] 마우스 포인터 속도 바꾸기  김영대 2003/03/06 4968 1251
654   [시스템] 마우스 자취(trails)의 갯수 조정하기  김영대 2003/03/06 5836 1839
653   [시스템] 마우스 두 번 누르기 속도 조정하기  김영대 2003/03/06 5895 1827
652   [데이터베이스] 설치된 BDE Language Drivers 구하기  김영대 2003/03/06 3431 825

[1][2][3][4][5][6][7] 8 [9][10]..[25] [다음 10개]
 

Copyright 1999-2022 Zeroboard / skin by zero