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

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


Category

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

// 아래 예제의 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.






651   [데이터베이스] Record number for SQL Query in DBGrid #2  김영대 2003/03/05 4396 1091
650   [윈도우즈 API] 내 프로그램의 화면을 가리는 프로그램 리스트  김영대 2004/07/24 4399 1164
649   [일반/컴포넌트] ListView 의 item 을 강제로 편집상태로 만들기  김영대 2003/03/07 4402 1129
648   [윈도우즈 API] 실행중인 모든 프로그램 Minimized 시키기  김영대 2003/03/06 4405 1175
647   [윈도우즈 API] 윈도우즈"시작" 버튼 Disable/Enable  김영대 2003/03/07 4406 1160
646   [시스템] 윈도우즈 전체의 키보드 입력 금지  김영대 2003/03/07 4407 1169
645   [윈도우즈 API] 휴지통에 파일을 버리는 법  신훈재 2003/03/10 4410 1151
644   [일반/컴포넌트] 문자열의 다음 찾기  김영대 2003/03/07 4414 1299
643   [윈도우즈 API] treeview 에 있는 내용을 출력하기  신훈재 2003/03/10 4414 1031
642   [일반/컴포넌트] StringGrid 에 ReadOnly 제한두기  김영대 2003/03/05 4415 1248
641   [일반/컴포넌트] Adobe Acrobat 이 설치되었는지 검사하기  김영대 2004/08/06 4415 1094
640   [윈도우즈 API] 외부 프로그램의 크기를 내 프로그램에서 변경하기  김영대 2003/03/07 4417 1155
639   [데이터베이스] DBGrid 의 특정필드만 Highlighting 시키기  김영대 2003/03/06 4418 1082
638   [윈도우즈 API] Type Library 목록 구하기  김영대 2004/08/06 4420 1189
637   [시스템] 현재 내 PC의 비디오 정보  김영대 2003/03/04 4421 1170
636   [일반/컴포넌트] RichEdit 에서 문자(열)를 찾아 글자속성 바꾸기  김영대 2003/03/06 4421 1157
635   [일반/컴포넌트] QReport에서 출력된 자료를 Text화일로 저장  김영대 2003/03/04 4422 1219
634   [윈도우즈 API] IE의 현재 url 가져오기  김영대 2003/03/07 4425 1102
633   [윈도우즈 API] 윈도우즈 '시작' 메뉴 Refresh 시키기  김영대 2003/03/07 4426 1371
632   [시스템] 윈도우즈 재시작  김영대 2004/08/30 4427 1129
631   [윈도우즈 API] Taskbar 의 특정 위치에 popup 메뉴 띄우기  김영대 2004/07/24 4432 1160
630   [윈도우즈 API] 모서리가 둥근(rounded ends) TEdit 만들기  김영대 2003/03/07 4433 1236
629   [윈도우즈 API] Hook 을 사용한 커서(캐럿)모양 바꾸기  김영대 2003/03/04 4437 1178
628   [데이터베이스] DBGrid 에서 수직 Scroll Bar 감추기  김영대 2003/03/05 4437 1208
627   [윈도우즈 API] 윈도우즈 "시작" 메뉴를 내 프로그램 안으로...  김영대 2003/03/07 4437 1197
626   [일반/컴포넌트] TPanel 로 만든 힌트  김영대 2004/08/05 4438 1110
625   [윈도우즈 API] 클립보드의 내용을 파일로 저장하기  김영대 2003/03/04 4443 1295
624   [일반/컴포넌트] 제어판의 applet 리스트 (51개)  김영대 2003/03/07 4445 1075
623   [윈도우즈 API] 폼에 애니메이션 효과 주기  김영대 2004/07/25 4445 1187
622   [데이터베이스] 델파이 에러코드의 설명(?) 구하기  김영대 2003/03/05 4446 1075
621   [시스템] 기본 프린터가 있어야 실행하지 ?  김영대 2003/03/05 4447 1169
620   [윈도우즈 API] Windows error beep 켜기/끄기  김영대 2003/03/07 4448 1266
619   [윈도우즈 API] 레지스트리(registry)를 바꾼후...  김영대 2003/03/05 4450 1196
618   [일반/컴포넌트] 윈도우즈 제어판 화면 띄우기  김영대 2003/03/07 4450 1200
617   [시스템] 두개의 파일이 완전히 동일한지 검사하기(CRC32)  김영대 2003/03/05 4453 1048
616   [시스템] 디스플레이 어댑터 목록 구하기  김영대 2004/08/11 4453 1176
615   [일반/컴포넌트] TListView Subcolumn Sorting  김영대 2003/03/06 4456 1146
614   [일반/컴포넌트] 커서(Cursor)의 이미지 구하기  김영대 2003/03/27 4456 1231
613   [일반/컴포넌트] URL encoding 하기  김영대 2003/03/30 4456 1142
  [일반/컴포넌트] 화면변경시 콤포넌트 위치와 크기를 조정  김영대 2003/03/06 4457 1073

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

Copyright 1999-2020 Zeroboard / skin by zero