Q&A

  • 모니터설정에 맞게 폼크기 조절하기
1024*768로 폼을만들어서 600*800으로도 화면크기에 맞게

폼을변환하고싶은데...

고수님들의 조언바랍니다. ^.^

2  COMMENTS
  • Profile
    Mr.Q 2000.08.20 09:12
    ljb007 wrote:

    > 1024*768로 폼을만들어서 600*800으로도 화면크기에 맞게

    > 폼을변환하고싶은데...

    > 고수님들의 조언바랍니다. ^.^



    아래소스를 참고하세요.

    여러해상도에서 테스트해봤는데,

    고해상도로 갈수록 정확한 화면 구현은 하지못하지만,

    어느정도 쓸만합니다.





    unit Unit1;



    interface



    uses

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

    jpeg, ExtCtrls, StdCtrls, ComCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    ComboBox1: TComboBox;

    Image1: TImage;

    RichEdit1: TRichEdit;

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    const

    ScreenWidth:LongInt=800;

    ScreenHeight:LongInt=600;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Scaled:=true;

    if Screen.Width<>ScreenWidth then

    begin

    Width:=LongInt(Width)*LongInt(Screen.Width) div ScreenWidth;

    Height:=LongInt(Height)*LongInt(Screen.Height) div ScreenHeight;

    ScaleBy(Screen.Width, ScreenWidth);

    end;

    end;



    end.



  • Profile
    영우 2000.08.20 06:25
    ljb007 wrote:

    > 1024*768로 폼을만들어서 600*800으로도 화면크기에 맞게

    > 폼을변환하고싶은데...

    > 고수님들의 조언바랍니다. ^.^



    1024*768에서 만든 폼을 scale속성을 변경하여 보여주고자 하는 폼에맞게 (비율을계산해서....) 맞추면 될거같은데요..

    전 전에 800*600에서 만든걸 타 해상도에서 똑같은 비율로 보여주려고 할 때 이 방법을 썼었거든요.. 수학에서 쓰는 비례식 같은거죠..

    예를 들어 1024*768에서 가로가 x였다고 하고 800*600에서 보여질 가로크기가 y라고하면

    1024:x=800:y이므로 y=800*x/1024가 되겠죠.. 이런 스케일변경은 버튼같은거도 적용이되니까.. 폼뿐만아니라 폼안에 있는 다른 컨트롤들도 같은 비율로 줄이거나 크게 할 수

    있겠죠...

    자세한 코딩방법은 다음에 올려드리죠...

    혹시 inside secret delphi5라는 책이 있으면 찾아보세요..

    그책에서 이런 내용을 본 것 같은데..

    답변이 부실했군요--;; 다른 고수님들은 더 정확히 아실테니 조언을 받아보세요.

    그럼이만..