델파이 이제 막시작한 사람입니다.
이제 막 한지 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일간 델파이책에 파고 들었거든요..
쉬운거 같기두하면서 어렵고 그러내요...언어는 잼있어서 좋긴한데..
이제 막 초보티벗은 중수님이나 고수님들 옛날생각하시면서 옛날
델파이 공부할때 에먹었던 점이나 아니면 요건 중요하다라고 생각하시는
것들좀 갈켜주시면 감사...아니 뭐 그냥 심심해서 진짜 심심하셔서
돈없어서 학원도 못가는넘하나 구제해주자는 생각에 그냥 맘대루 끄적끄적
적어주셔도됩니다...정보가 없으니까 제가 한계를 느끼내요...
학원가려해도 생활비며 등록금까증 제가 스스로 대야 하는입장에 엄두도몬내겠구요..
이상 쓸대없이하소연한 나르시스였습니다..행복하세요..
만들어 봤습니다. 방법은 비슷하네요.
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;
끝..