Q&A

  • 공통 Pas 에서 사용하는 SelectNext 함수..
안녕하세요



각 Form 에서 SelectNext 를 사용한 경우 Error 가 나지 않았는데



SelectNext 를 사용하는 Logic을 Module화 하기 위해 해당 Logic을



공통 Pas 에 구현을 해보니 컴파일시



Undeclared identifier : 'SelectNext' 라는 Error 가 발생합니다..



uses 구문에 Controls 를 추가해도 동일한 Error가 발생하더군요.



사용한 Case 를 말씀드리면..



공통Pas 내의 Procedure 는 다음과 같습니다.



**********************************************************************

procedure gpEditBox_onKeyup(ColumnInfoRec: array of TColumnInfoRec ; Sender : TEdit ; ColCount : Integer);

begin



if ( tmpStr = 'AAA' ) then

SelectNext(TEdit(Sender),True,True);

end;

**********************************************************************



이 프로시져를 호출하는 쪽은 다음과 같습니다.



**********************************************************************

gpEditBox_onKeyup(ColumnInfoRec, TEdit(Sender), ColCount);

**********************************************************************



고견을 부탁드립니다..









1  COMMENTS
  • Profile
    mephy 1999.04.29 22:31
    이누리 wrote:

    > 안녕하세요

    >

    > 각 Form 에서 SelectNext 를 사용한 경우 Error 가 나지 않았는데

    >

    > SelectNext 를 사용하는 Logic을 Module화 하기 위해 해당 Logic을

    >

    > 공통 Pas 에 구현을 해보니 컴파일시

    >

    > Undeclared identifier : 'SelectNext' 라는 Error 가 발생합니다..

    >

    > uses 구문에 Controls 를 추가해도 동일한 Error가 발생하더군요.

    >

    > 사용한 Case 를 말씀드리면..

    >

    > 공통Pas 내의 Procedure 는 다음과 같습니다.

    >

    > **********************************************************************

    > procedure gpEditBox_onKeyup(ColumnInfoRec: array of TColumnInfoRec ; Sender : TEdit ; ColCount : Integer);

    > begin

    >

    > if ( tmpStr = 'AAA' ) then

    > SelectNext(TEdit(Sender),True,True);

    > end;

    > **********************************************************************

    >

    > 이 프로시져를 호출하는 쪽은 다음과 같습니다.

    >

    > **********************************************************************

    > gpEditBox_onKeyup(ColumnInfoRec, TEdit(Sender), ColCount);

    > **********************************************************************

    >

    > 고견을 부탁드립니다..

    >

    >

    >

    >



    SelectNext함수는 Pubished로 선언된 함수이기 때문에 그렇게 사용할 수 없습

    니다.



    하지만 간단히 다음과 같이 함수를 만들어 주면 쉽게 SelectNext를 구현할 수 있습니다.





    unit uImsi;



    interface



    uses

    Classes, StdCtrls, Forms, controls;



    procedure GoNextC(CurControl: TWinControl; CheckTabStop: Boolean);

    procedure GoBackC(CurControl: TWinControl; CheckTabStop: Boolean);



    implementation



    function FindNextControl(CurControl: TWinControl;

    GoForward, CheckTabStop, CheckParent: Boolean): TWinControl;

    var

    I, StartIndex: Integer;

    List: TList;

    begin

    Result := nil;

    List := TList.Create;

    try

    Screen.ActiveForm.GetTabOrderList(List);

    if List.Count > 0 then

    begin

    StartIndex := List.IndexOf(CurControl);

    if StartIndex = -1 then

    if GoForward then StartIndex := List.Count - 1 else StartIndex := 0;

    I := StartIndex;

    repeat

    if GoForward then

    begin

    Inc(I);

    if I = List.Count then I := 0;

    end else

    begin

    if I = 0 then I := List.Count;

    Dec(I);

    end;

    CurControl := List[I];

    if CurControl.CanFocus and

    (not CheckTabStop or CurControl.TabStop) and

    (not CheckParent or (CurControl.Parent = Screen.ActiveForm)) then

    Result := CurControl;

    until (Result <> nil) or (I = StartIndex);

    end;

    finally

    List.Free;

    end;

    end;



    procedure GoNextC(CurControl: TWinControl; CheckTabStop: Boolean);

    var

    GoForward : Boolean;

    begin

    GoForward := True;

    CurControl := FindNextControl(CurControl, GoForward,

    CheckTabStop, not CheckTabStop);

    if CurControl <> nil then CurControl.SetFocus;



    end;



    procedure GoBackC(CurControl: TWinControl; CheckTabStop: Boolean);

    var

    GoForward : Boolean;

    begin

    GoForward := False;

    CurControl := FindNextControl(CurControl, GoForward,

    CheckTabStop, not CheckTabStop);

    if CurControl <> nil then CurControl.SetFocus;

    end;



    end.



    • 강민정
    • 1999.04.29 20:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • rain
      1999.04.30 02:09
      Form만 불러오는 소스를 가지고는 어떤 에러인지는 정확히 모르겠습니다. 물론 모든 소스를 보여달라는 것...
    • 이상주
    • 1999.07.10 22:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 정정례
      1999.04.29 19:35
      가상Key번호 중에서 PageUp과 PageDown번호를 알려주세요
    • 신인재
      1999.04.29 19:44
      정정례 wrote: > 가상Key번호 중에서 PageUp과 PageDown번호를 알려주세요 천랸 PDSPF에서 퍼 왔습니다...
    • 이창남
      1999.07.10 22:28
      DBGrid에 직접 데이터 입력할 경우.. Post가 일어나기 전에 특정 컬럼의 값을 체크하려고 합니다.. Dat...
    • 안치봉
      1999.04.29 19:36
      장 아무개 wrote: > 답변중에 > 집합형이라고 하셨는데 > printer_DBGrid.Options.dgRowLines := true ...
    • 정정례
      1999.04.29 19:35
      가상Key번호 중에서 PageUp과 PageDown번호를 알려주세요
    • 신인재
      1999.04.29 19:44
      정정례 wrote: > 가상Key번호 중에서 PageUp과 PageDown번호를 알려주세요 천랸 PDSPF에서 퍼 왔습니다...
    • Kinjecs
    • 1999.07.10 20:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 송동일
      1999.04.29 18:55
      안녕들 하신가요? 어떤 공식을 입력시켜 두고 데이타를 공식에 적용하려 합니다. 공식이 영구적이라면 프...
    • 나노시스
      1999.07.14 00:22
      Kinjecs 께서 말씀하시기를... > 한컴퓨터에 어느 한 DB 가 있습니다... > lan으로 연결된 다른컴퓨터들...
    • 김영대
      1999.04.29 19:14
      송동일 wrote: > 안녕들 하신가요? > 어떤 공식을 입력시켜 두고 데이타를 공식에 적용하려 합니다. > ...
    • 성병규
    • 1999.07.10 19:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 송동일
      1999.04.29 18:55
      안녕들 하신가요? 어떤 공식을 입력시켜 두고 데이타를 공식에 적용하려 합니다. 공식이 영구적이라면 프...
    • 안치봉
      1999.07.10 20:32
      안녕하세요. 여러가지 방법이 있겠죠... 맞는지는 모르겠지만... 그리 큰 데이타가 아니라면 저 같은...
    • 김영대
      1999.04.29 19:14
      송동일 wrote: > 안녕들 하신가요? > 어떤 공식을 입력시켜 두고 데이타를 공식에 적용하려 합니다. > ...
    • 김봉재
    • 1999.04.29 18:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.29 22:15
      잠깐 Command프롬프트로 가셔서 그 BORDBP40.DLL이 있는 디렉토리로 이동하신 후에 Regsvr32 BORDBK40.DLL ...
    • 강경중
    • 1999.07.10 15:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정재홍
      1999.07.10 18:24
      강경중 께서 말씀하시기를... > 아래에 있는 내용을 사용했는데요... > with QRCompositeReport1 do > b...
    • 이누리
    • 1999.04.29 18:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • mephy
      1999.04.29 22:31
      이누리 wrote: > 안녕하세요 > > 각 Form 에서 SelectNext 를 사용한 경우 Error 가 나지 않았는데 > ...
    • 최석기
      1999.07.10 17:45
      최혁진 께서 말씀하시기를... > 특정 데이터베이스 파일내에 존재하는 테이블들의 리스트를 델파이 프로그...
    • 안치봉
      1999.04.29 19:36
      장 아무개 wrote: > 답변중에 > 집합형이라고 하셨는데 > printer_DBGrid.Options.dgRowLines := true ...
    • 궁금이
    • 1999.07.10 04:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.07.10 20:23
      안녕하세요. 제가 만든 간단한 콤포넌트가 있는데 한델 자료실에 올려드리죠^^; 궁금이 께서 말씀하...
    • 이호선
      1999.04.29 06:02
      안녕하세요. 별다른 것은 없고요 현재 설정된 기본 프린트를 바꿀려하는데 바꿔도 이전설정된 프린트장치...
    • 이정욱
      1999.07.10 20:44
      통상적인것이라기 보다는 제가 사용하는 방법을 말씀드리죠. 전 Component라는 디렉토리를 따로 루트디렉...
    • 이정욱
      1999.04.29 21:53
      제가 만든 기본프린터 바꾸는 함수 입니다. 참고하시구요... 이것은 프린터 이름의 일부만 넣어줘도 됩니...
    • 안치봉
      1999.04.29 07:10
      이호선 wrote: > 안녕하세요. > 별다른 것은 없고요 현재 설정된 기본 프린트를 바꿀려하는데 바꿔도 > ...
    • 이호선
    • 1999.04.29 06:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장일형
      1999.07.10 03:54
      델파이로 특정 디렉토리를 지우지 못하게 하고 그 디렉토리에 있는 파일을 볼 수 없도록 할 수 있나요? P...
    • 안치봉
      1999.04.29 07:03
      이호선 wrote: > 안녕하세요. > Drag&Drop내용이 델파이 강의에 있다하는데 어디인지 못찾겠는데요. > ...
    • 이호선
    • 1999.04.29 06:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.29 07:03
      이호선 wrote: > 안녕하세요. > Drag&Drop내용이 델파이 강의에 있다하는데 어디인지 못찾겠는데요. > ...
    • 구창민
      1999.07.10 12:01
      Termy 께서 말씀하시기를... > 소켓통신으로 다른 컴퓨터에 파일전송하고 저장하고 싶은데 > 소켓으로 파...
    • 김종환
      1999.07.13 06:09
      구창민 께서 말씀하시기를... > Termy 께서 말씀하시기를... > > 소켓통신으로 다른 컴퓨터에 파일전송하...
    • 구창민
      1999.07.13 08:30
      김종환 께서 말씀하시기를... > 구창민 께서 말씀하시기를... > > Termy 께서 말씀하시기를... > > > 소...
    • 김종환
      1999.07.13 13:41
      > 김종환님 구창민입니다. > 죄송합니다. 게시판의 번호가 변하는 줄 몰랐었습니다. > 아래를 주소를 복...