Q&A

  • 폼의 이동은?
프로그램을 실행했을때, 폼이 조금씩 화면의 위에서 아래로 내려와서

중앙에 멈추게 할 수 있습니까?

가르쳐 주십시오...

1  COMMENTS
  • Profile
    김영대 1999.12.02 22:49
    심형성 wrote:

    > 프로그램을 실행했을때, 폼이 조금씩 화면의 위에서 아래로 내려와서

    > 중앙에 멈추게 할 수 있습니까?

    > 가르쳐 주십시오...



    아래는 중앙정렬시키는 예제입니다

    이동하는것은 for 문을 쓰면 됩니다



    // taskbar 나 application bar 를 제외한 데스크탑의 작업영역에서

    // 폼을 중앙 정렬 시킨다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    var

    r: TRect;

    osv: TOSVersionInfo;

    begin

    // 운영체제 관련정보

    osv.dwOSVersionInfoSize := SizeOf(osv);

    GetVersionEx(osv);

    if osv.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then

    begin

    // Windows95 의 work area 내에서의 중앙 좌표를 구한다

    SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);

    Left := ((r.right - r.left) - Width) div 2;

    Top := ((r.bottom - r.top) - Height) div 2;

    end

    else // Windows NT3.Ex

    begin

    Left := (GetSystemMetrics(SM_CXSCREEN) - Width) div 2;

    Top := (GetSystemMetrics(SM_CYSCREEN) - Height) div 2;

    end;

    end;



    end.