Q&A

  • 에디터박스에서 포커스이동시 색변환(단, 에디터 이벤트를 사용치않고)
안녕하세요. 전 델파이를 배운지 한달 정도된 초봅니다. 질문은 여러개의 에디터박스를 폼에 배치한 후 이벤트를 이용하지 않고 에디터박스를 이동(화살표키나 엔터키를 이용)하고 이동한 에디터박스의 색이 파란색혹은 기타색으로 반전되도록 할 수 있는 코딩방법은? application어쩌구 저쩌구 하느것 같은데..



잘 몰겠음...아시는분은?

2  COMMENTS
  • Profile
    최용일 2000.03.20 19:25
    다음과 같이 하시면 엔터키로 여러 컨트롤들을 이동하실 수 있습니다.



    OnKeyPress이벤트에 넣으세요..



    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

    begin

    if Key = Char(vk_Return) then

    begin

    Key := #0;

    PostMessage(GetFocus, WM_KEYDOWN, VK_TAB, 0);

    end;

    end;





    델초보 wrote:

    > 안녕하세요. 전 델파이를 배운지 한달 정도된 초봅니다. 질문은 여러개의 에디터박스를 폼에 배치한 후 이벤트를 이용하지 않고 에디터박스를 이동(화살표키나 엔터키를 이용)하고 이동한 에디터박스의 색이 파란색혹은 기타색으로 반전되도록 할 수 있는 코딩방법은? application어쩌구 저쩌구 하느것 같은데..

    >

    > 잘 몰겠음...아시는분은?

  • Profile
    최재원 2000.03.20 19:13
    수고 하십니다.



    이벤트를 쓰지 않고 하는 방법은 잘 모르겠구요



    Edit Box에 보면 OnKeyDown 이벤트가 있습니다.



    거기에 다가



    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    if (key = Vk_Return) or (Key = Vk_Down) then // 엔터나 아래화살표

    SelectNext(Sender As TWincontrol,True,True);

    // 가운데 True, False가 위치 를 이동되게 합니다.

    if Key = Vk_Up then

    SelectNext(Sender As TWincontrol,False,True); //위화살표

    end;



    각각의 Edit에 이 이벤트를 작성하시구요....



    근데 Edit에 프로퍼티에 보면 TabOrder가 있습니다.



    Edit1 --> TabOrder = 0

    Edit2 --> TabOrder = 1

    Edit3 --> TabOrder = 2

    Edit4 --> TabOrder = 3

    Edit5 --> TabOrder = 4



    이렇게 설정하면 TabOrder순서대로 Focus가 이동됩니다.





    도움이 되는 답변이었으면 합니다.....