Q&A

  • InputBox에서 Font나 Box Size 를 조절할수 없나요 ?
고수님들께 도움을 청합니다.



1. InputBox에서 Font를 내가 원하는 크기나 종류로 조절하고 싶은데

방법 좀 알려주세요.



2. 또한 입력받고자하는 길이가 꾀 긴편인데 Box Size가 너무 작아요.

그래서 Size Control하는 방법 좀 알려주시면 고맙겠습니다.



감사합니다.

1  COMMENTS
  • Profile
    최용일 2000.03.30 20:57
    가장 좋은 방법은 InputBox를 새롭게 만드시는 것입니다. 사실 InputBox라는게

    다이얼로그폼에 에디트하나와 라벨 하나, 2개의 버튼으로 되어있는 간단한 폼입니다.

    델파이를 조금만 하실줄 안다면 만드는것은 어렵지 않으실텐데...



    두번째 방법은 소스를 직접수정하는 방법입니다. InputBox는 Dialog유닛에 들어

    있는데 이 소스파일을 직접 고쳐서 사용하는 겁니다

    소스파일내에서 다음을 찾아서 고치시면 됩니다.



    function InputQuery(const ACaption, APrompt: string;

    var Value: string): Boolean;

    var

    Form: TForm;

    Prompt: TLabel;

    Edit: TEdit;

    DialogUnits: TPoint;

    ButtonTop, ButtonWidth, ButtonHeight: Integer;

    begin

    Result := False;

    Form := TForm.Create(Application);

    with Form do

    try // <==== 여기서 원하는 폰트, 크기, 위치등을 설정

    Canvas.Font := Font;

    DialogUnits := GetAveCharSize(Canvas);

    BorderStyle := bsDialog;

    Caption := ACaption;

    ClientWidth := MulDiv(180, DialogUnits.X, 4);

    ClientHeight := MulDiv(63, DialogUnits.Y, 8);

    Position := poScreenCenter;

    Prompt := TLabel.Create(Form);

    with Prompt do // <== 라벨의 크기, 위치등을 설정

    begin

    Parent := Form;

    AutoSize := True;

    Left := MulDiv(8, DialogUnits.X, 4);

    Top := MulDiv(8, DialogUnits.Y, 8);

    Caption := APrompt;

    end;

    Edit := TEdit.Create(Form);

    with Edit do // <== 에디트박스의 크기, 위치등을 설정

    begin

    Parent := Form;

    Left := Prompt.Left;

    Top := MulDiv(19, DialogUnits.Y, 8);

    Width := MulDiv(164, DialogUnits.X, 4);

    MaxLength := 255;

    Text := Value;

    SelectAll;

    ...

    ...

    ...



    최연수 wrote:

    > 고수님들께 도움을 청합니다.

    >

    > 1. InputBox에서 Font를 내가 원하는 크기나 종류로 조절하고 싶은데

    > 방법 좀 알려주세요.

    >

    > 2. 또한 입력받고자하는 길이가 꾀 긴편인데 Box Size가 너무 작아요.

    > 그래서 Size Control하는 방법 좀 알려주시면 고맙겠습니다.

    >

    > 감사합니다.