Q&A

  • 이거묻다가 돌맞는건 아닌지...제발좀..갈켜줘여..ㅡㅜ..델파이기초..
델파이 이제 막시작한 사람입니다.

이제 막 한지 3일쯤 지났내요..

넘 급속하게 진도를 나가서 인지 넘 막히내요..

물어 볼것은 다름이 아니라 SetFocus 메소드를 이용해서 에디트들 사이로 이동하는건데

친구하고 책가지구 장난치다가 답장이 사라지는 바람에 ㅡㅡ;;

하여튼 답은 어느정두까지 아는데 만큼 했는데 안되내요...머가 잘못된건지두 몰겠어여.

아래 소스올릴꼐요...이넘이것두 모르냐라고 질책하셔두 조으니 모범답안이나 아니면 제소스중 틀린것 이거 말씀좀 해주세요...소스에러는 안나는데 안되요..하긴 아는것두 별루 없으니 ㅡㅡ;;



질문1) 에디트컴포넌트 5개를 십자형태로 배치한뒤 키보드의 방향키로 에디트 컴포넌트 사이를 자유롭게 이동시켜라.



제가 만든것..



edit1

edit2 edit3 edit4

edit5



폼에 에디트를 이렇게 배치했구요 소스는



unit Unit1;



interface



uses

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

StdCtrls;



type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

procedure edit3keydown(sender: Tobject; var key:word; shift: Tshiftstate);

procedure edit4keydown(sender: Tobject; var key:word; shift: Tshiftstate);

procedure edit5keydown(sender: Tobject; var key:word; shift: Tshiftstate);

procedure edit1keydown(sender: Tobject; var key:word; shift: Tshiftstate);

procedure edit2keydown(sender: Tobject; var key:word; shift: Tshiftstate);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}





procedure TForm1.edit3keydown(sender:Tobject; var key:

word; shift: Tshiftstate);



begin

case key of

40 : edit5.setfocus;

39 : edit4.setfocus;

38 : edit1.setfocus;

37 : edit2.setfocus;

end;

end;





procedure Tform1.edit4keydown(sender : Tobject; var key:

word; shift : Tshiftstate);

begin



if key =37 then edit3.setfocus;

end;



procedure Tform1.edit5keydown(sender : Tobject; var key:

word; shift : Tshiftstate);

begin



if key = 38 then edit3.setfocus;



end;



procedure Tform1.edit1keydown(sender : Tobject; var key:

word; shift : Tshiftstate);

begin



if key = 40 then edit3.setfocus;

end;



procedure Tform1.edit2keydown(sender : Tobject; var key:

word; shift : Tshiftstate);

begin



if key = 39 then edit3.setfocus;

end;





end.



이렇습니다.

전 진짜 디게 머리 굴려서 했는데...ㅡㅜ

이거 답안좀....

메일로 소스코딩하셔서 보내주심 넘 감사 +_+;;

아니면 아주작지만 답변이라두...

하여튼 읽어주신 모든분들 감사하구요 추석연휴 델피언여러분들

즐거운 연휴가 되길 바랄께요.

그럼.



PS..

저 이거 넘 쩍 팔려서 안물을려고 했는데 물어볼께요..*-.-* 쩍팔료..

델파이실력이 그래도 회사취직할정두의 실력을 갖출려면 어느정두까지

공부를 해야되나요.. 하루 4~5시간씩 하루도 빠짐없이 꾸준히 한다고하면..

저 하루 4시간자면서 3일간 델파이책에 파고 들었거든요..

쉬운거 같기두하면서 어렵고 그러내요...언어는 잼있어서 좋긴한데..

이제 막 초보티벗은 중수님이나 고수님들 옛날생각하시면서 옛날

델파이 공부할때 에먹었던 점이나 아니면 요건 중요하다라고 생각하시는

것들좀 갈켜주시면 감사...아니 뭐 그냥 심심해서 진짜 심심하셔서

돈없어서 학원도 못가는넘하나 구제해주자는 생각에 그냥 맘대루 끄적끄적

적어주셔도됩니다...정보가 없으니까 제가 한계를 느끼내요...

학원가려해도 생활비며 등록금까증 제가 스스로 대야 하는입장에 엄두도몬내겠구요..

이상 쓸대없이하소연한 나르시스였습니다..행복하세요..





3  COMMENTS
  • Profile
    방기남 2000.09.11 02:50
    님의 방법에는 여러 이벤트가 나타나는군요. 하나의 이벤트에 넣어 좀 더 보기좋게

    만들어 봤습니다. 방법은 비슷하네요.



    1. 빈 폼에 십자형으로 에디터 박스를 위치시킨다.

    2. up

    left center right

    down

    이라고 이름을 준다.

    3. 위 5개를 모두 선택한 후 keydown 이벤트에 아래의 소스를 추가한다.



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

    Shift: TShiftState);

    begin

    case key of

    vk_left : begin

    if activecontrol.Name = center.name then left.setfocus;

    if activecontrol.Name = right.name then center.setfocus;

    end;

    vk_up : begin

    if activecontrol.Name = center.name then up.setfocus;

    if activecontrol.Name = down.name then center.setfocus;

    end;

    vk_down : begin

    if activecontrol.Name = center.name then down.setfocus;

    if activecontrol.Name = up.name then center.setfocus;

    end;

    vk_right: begin

    if activecontrol.Name = center.name then right.setfocus;

    if activecontrol.Name = left.name then center.setfocus;

    end;

    end;

    label1.caption := activecontrol.Name;

    end;



    끝..

  • Profile
    나르시스 2000.09.11 06:58
    저기 제 소스중에 틀린것좀 잡아줘여..

    실행에러는 없는데 방향키로 이동이 안되내요 ,ㅡㅜㅡㅜㅡㅜ

  • Profile
    방기남 2000.09.11 14:03




    ^^