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

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


Category

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

// 아래 예제의 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 5369 1151
690   [일반/컴포넌트] 명령행 인자 받아오기  김영대 2003/03/05 7297 1885
689   [네트웍/인터넷] List of raw FTP commands  김영대 2003/03/05 7255 1899
688   [네트웍/인터넷] RFC: Request for Comments  김영대 2003/03/05 7800 2047
687   [네트웍/인터넷] 윈도우즈 소켓의 에러번호에 대한 설명  김영대 2003/03/05 7853 2714
686   [일반/컴포넌트] 파일의 해부  김영대 2003/03/05 6393 1715
685   [일반/컴포넌트] ListBox의 스크롤바를 움직여보자  김영대 2003/03/05 4586 1105
684   [일반/컴포넌트] PopupMenu의 특정 MenuItem으로 이동하기  김영대 2003/03/05 2942 787
683   [일반/컴포넌트] 데스크탑의 아이콘을 몽땅 움직여보자!!  김영대 2003/03/05 6433 1902
682   [일반/컴포넌트] 마우스커서를 특정위치로 이동시키기  김영대 2003/03/05 5948 1216
681   [일반/컴포넌트] 제어판의 applet 띄우기  김영대 2003/03/05 2883 778
680   [일반/컴포넌트] INI 파일이 저장을 안 해?  김영대 2003/03/05 4172 1114
679   [일반/컴포넌트] 마우스영역 제어하기  김영대 2003/03/05 3710 985
678   [일반/컴포넌트] 리스트뷰에서 동적으로 칼럼삭제하기  김영대 2003/03/05 6958 1412
677   [일반/컴포넌트] Interesting Delphi Keystrokes !  김영대 2003/03/05 3652 1068
676   [일반/컴포넌트] Application 수준에서 한글/영문 제한두기  김영대 2003/03/05 6054 1874
675   [데이터베이스] dBASE Table File Extensions  김영대 2003/03/05 4619 1304
674   [데이터베이스] Paradox Table File Extensions  김영대 2003/03/05 3740 1035
673   [일반/컴포넌트] 파일의 속성(Attribute) 읽기 / 바꾸기  김영대 2003/03/05 4071 1056
672   [데이터베이스] DBGrid 에서 수직 Scroll Bar 감추기  김영대 2003/03/05 4680 1269
671   [윈도우즈 API] 인터넷 링크 만들기  김영대 2003/03/06 4594 1280
670   [네트웍/인터넷] 내 PC의 IP주소는 ?  김영대 2003/03/06 5361 1236
669   [일반/컴포넌트] 문자열의 암호화(Password 처리) & INI 파일  김영대 2003/03/06 6402 1541
668   [윈도우즈 API] 윈도우의 타이틀바를 없애보자!  김영대 2003/03/06 4495 1363
667   [윈도우즈 API] 클립보드의 내용을 TXT 파일에 담아보자!  김영대 2003/03/06 6539 1777
666   [시스템] 프로세서를 생성시켜보자!  김영대 2003/03/06 4597 1223
665   [일반/컴포넌트] 델파이의 Object Inspector 모방  김영대 2003/03/06 3660 834
664   [시스템] 시스템의 각종 정보  김영대 2003/03/06 7586 1314
663   [데이터베이스] DBGrid 특정 Cell에 색상넣기  김영대 2003/03/06 7916 1618
662   [데이터베이스] DBGrid 의 특정필드만 Highlighting 시키기  김영대 2003/03/06 4739 1140
661   [COM/OLE] How to register an OCX  김영대 2003/03/06 5063 1173
660   [윈도우즈 API] "Windows 정보" About 화면 사용하기  김영대 2003/03/06 6518 1986
659   [일반/컴포넌트] 문자열에 한글이 있는지 검사  김영대 2003/03/06 3882 985
658   [일반/컴포넌트] TColor값을 16진수 문자열로 바꾸기  김영대 2003/03/06 6236 1778
  [일반/컴포넌트] 화면변경시 콤포넌트 위치와 크기를 조정  김영대 2003/03/06 4669 1134
656   [시스템] 마우스 포인터 속도 구하기  김영대 2003/03/06 5598 1722
655   [시스템] 마우스 포인터 속도 바꾸기  김영대 2003/03/06 5075 1260
654   [시스템] 마우스 자취(trails)의 갯수 조정하기  김영대 2003/03/06 5977 1845
653   [시스템] 마우스 두 번 누르기 속도 조정하기  김영대 2003/03/06 6048 1832
652   [데이터베이스] 설치된 BDE Language Drivers 구하기  김영대 2003/03/06 3483 830

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

Copyright 1999-2023 Zeroboard / skin by zero