Q&A

  • StringGrid에서 마지막 셀에서 Enter key시 첫번째 셀로 이동...
StringGrid에서나 SortGrid에서 Enter key를 누르면 셀을 이동하는 것은 만들었습니다...
그런데 마지막 셀에서 Enter key를 누르면 새로운 Row가 생기면서 첫번째 셀로 Forcus가 이동을 해야되는 데요,  새로운 Row는 생겼는데 첫번째 셀로 focus롤 어떻게 가나요...
고수님들의 도움이 필요합니다...

참, 이런기능을 손쉽계 할수있는 방법이 있으면 도와주세요...
     한화면에 StringGrid가 여러개가 있어서 코딩이 너무 많아지내요...
     위의 기능을 간단히 할수있는 방법을 부탁드립니다.
그럼 ...

답변 면저 감사합니다...

1  COMMENTS
  • Profile
    최용일 2002.07.16 01:00
    안녕하세요. 최용일입니다.

    스트링그리드의 OnKeyDown이벤트에서 아래와 같이 코딩해보세요...

    참고로 Sender파라매터를 사용하시면 여러개의 컴포넌트에 동일한 이벤트를 설정해서 똑같은 효과를 줄 수 있습니다...

    procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
    var
        IsLastCol, IsLastRow: Boolean;
    begin
        if Key = Char(vk_Return) then
        begin
            Key := #0;
            IsLastCol := (TStringGrid(Sender).Col = (TStringGrid(Sender).ColCount - 1));
            IsLastRow := (TStringGrid(Sender).Row = TStringGrid(Sender).RowCount - 1);
            if IsLastCol and IsLastRow then // 마지막 셀일때
            begin
                TStringGrid(Sender).RowCount := TStringGrid(Sender).RowCount + 1;

                TStringGrid(Sender).Col := 0;
                TStringGrid(Sender).Row := TStringGrid(Sender).Row + 1;
            end
            else if IsLastCol then // 마지막 컬럼일때
            begin
                TStringGrid(Sender).Col := 0;
                TStringGrid(Sender).Row := TStringGrid(Sender).Row + 1;
            end
            else
            begin
                TStringGrid(Sender).Col := TStringGrid(Sender).Col + 1;
            end;
        end;
    end;

    ^^ 항상 즐코하세요...

    • 바다를향해
      2002.07.18 12:40
      혹시 ShellExecute 말구요 i := Winexec('explorer.exe mailto:kst007@netian.com', SW_HIDE); 이걸 사용...
    • 장태원
      2002.07.16 05:23
      무슨 에런진 해석할수가 없네용.ㅠㅡ; project 파일에 해당 프로그램이 선언되어 있는지? 또..mdichi...
    • 배경
    • 2002.07.16 03:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.16 05:39
      CHKIO 에 RTRIM 한번 해보심이..
    • 이동현
    • 2002.07.16 03:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 정종우
      2002.07.24 02:17
      오른쪽 껏을 눌렀는데 아무런 응답이 없는상태(101키)라면 오른쪽 키를 지원하는 드라이버(106키)로 바꿨...
    • 한원희
      2002.07.16 04:28
      음냐, CTRL 키가 눌렸을 때, Enter키가 눌린것 처럼 동작해야할 일이 있나요? 음... 별로 추천할 만한 일...
    • 장영철
    • 2002.07.16 02:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.16 05:38
      US7ASCII 이거 때문이 아닐까 싶네요..language드라이버를 kor....로 바꿔주셔 보심이...
    • 최용일
      2002.07.16 03:21
      안녕하세요. 최용일입니다. 소수가 뭔지만 알면 금방 할 수 있는건데... 1하고 자기자신으로만 나누...
    • 도리도리
      2002.07.16 21:46
      네..답변 주셔서 감사합니다..그런데 제가 공부하는 입장이기에 무작정 님께서 오려주신 내용을 보고 할...
    • 최용일
      2002.07.16 23:15
      100이하의 소수를 구하니까 루프변수는 100까지가 되겠구요... 모든 수가 1로 나누어 지니까 1은 제외하...
    • 권대경
    • 2002.07.16 02:14
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.07.16 04:42
      TValueListEditor 로는 비슷하기는 해도 불가능하지 않나요? 제가 사용해본 컴포넌트 중에 FlyTree 라는...
    • 권대경
      2002.07.17 02:21
      좋은 정보 주셔서 감사합니다. 님의 말대로 TValueListEditor로는 구현이 불가능한 것  같...
    • 장태원
      2002.07.16 05:35
      DBCtrlGrid 에서 컴퍼넌트 올려놓으실때..한 레코드 안에 다 넣어주세요. 마치 한레코드를 보이기에는 ...
    • 곽충열
      2002.07.16 06:11
      답변 감사드립니다. 근데 문제는 레코드 개수가 정해져 있지 않거든요.. 제 경우 Row가 다섯개가 생...
    • 김길명
    • 2002.07.16 02:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.07.16 02:33
      안녕하세요. 최용일입니다. 검색해보시면 있는데... 쩝~ Re: 법인번호가 올바른지 체크하는 방법...
    • 한원희
      2002.07.16 04:38
      일단 포커스를 갖을 수 있는 컨트롤은 TWinControl 에서 상속받은 것만 가능하기 때문에 다음과 같이 코딩...
    • 홀로서기
      2002.07.16 18:38
      잘 되네여 ~ ~ 델파이 초보라서 알고시픈건 많은데... 주변에 도와주는 사람은 없고 ㅠㅠ 여기와서 많은...
    • 최용일
      2002.07.16 02:27
      안녕하세요. 최용일입니다. 리스트같은 걸 써서 프로세스 리스트를 관리하시면 될거같은데요... Crea...
    • 김동광
      2002.07.16 03:25
      sub process는 코딩으로 CreateProcess함수로 만드는 것이 아니구요! CreateProcess함수에 의해 생성된 p...
    • 최용일
      2002.07.16 04:02
      전체 프로세스 리스트를 루프를 돌면서 갱신하면서 검색하시다가 원하시는 서브프로세스가 검색되어질때 그...
    • 최용일
      2002.07.16 00:45
      안녕하세요. 최용일입니다. FormatDateTime을 이용해보세요... var     MyDateTi...
    • * 아자!! *
      2002.07.16 02:06
      StrToDateTime(FormatDateTime('YYYY-MM-DD opensi + ":" +openbun', Now)); 이런식으로 하면 될것 같은데...
    • 최용일
      2002.07.16 02:22
      쩝~ StrToDateTime( FormatDateTime('YYYY-MM-DD ' + OpenSi + ':' + OpenBun + ':00', Now) ); ^^ ...
    • 김진만
    • 2002.07.15 22:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.16 05:42
      Stream 말고.. assign 이나 value를 사용해보심이..ㅡㅡ;
    • 휴초보
    • 2002.07.15 22:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.07.16 00:46
      안녕하세요. 최용일입니다. 자료실에 있는 G32컴포넌트를 써보세요... 레이어 기능 지원합니다. 거기...
    • 김진혁
      2002.07.16 01:28
      무식한 방법이지만...아주 쉬운 방법이 있습니다... 이미지 컴포넌트를 계속해서 씌우는 것이죠,... 이미...
    • 이지태
    • 2002.07.15 21:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오정민
      2002.07.16 07:43
      property에서 WindowState 을 wsMaximized 로 하면 되지 않을까여... 오늘 하루도 즐거운 하루되세요.
    • 머슴
      2002.07.15 22:33
      스크린 상관없이 항상 일정한크기로 폼을 띄우는 방법입니다.. implementation const ScreenWidth:Lo...
    • 장태원
      2002.07.16 05:37
      혹시...윈도우계정을 상속시켜놨는지 궁금하군요. 예를 들어 서버에 administrator 만 허용시켰고. ...
    • 손동언
    • 2002.07.15 21:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 전철호
      2002.07.15 22:38
      Delete라는 Method가 있습니다. 예를 들면 ListBox1.Items.Delete(지우고 싶은 아이템); 이라고 하면 ...
    • 블랙썬
      2002.07.15 21:33
      //선택된거만 삭제 ListBox1.DeleteSelected; //Listbox 아이템 인덱스로 삭제 ListBox1.Items.Dele...
    • 한원희
      2002.07.15 21:31
      마지막 줄을 삭제하시려면, ListBox1.Items.Delete(ListBox1.Items.Count-1); 이렇게 하시면 됩니다....
    • 머슴
      2002.07.15 22:27
      DLL의 폼을 생성할때 소유자를 nil로 하지마시고요.. Application으로 한번 해보세요...
    • 강재규
    • 2002.07.15 20:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.07.16 01:00
      안녕하세요. 최용일입니다. 스트링그리드의 OnKeyDown이벤트에서 아래와 같이 코딩해보세요... 참고...