Q&A

  • DBGrid에 포커스가 가는 방법....
안녕하세요 이상석입니다.

다름이 아니오라 SQL문을 이용하여 주민등록번호로 삶을 찾는 창을

만들었습니다. 그런데 주민등록 번호로 찾은것 같은에 DBGrid1에 해당

되는 사람에 포커스를 가지게 하려고하는데 안되더군요.

DBGrid1.Setfocus; 라고하면 안되는데 어떻게 해야하나요?

아래 소스입니다. 부탁 드립니다.

그럼 20000....

---------------------------------------------------------------------

unit ZuminSearch;



interface



uses

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

StdCtrls, ExtCtrls, Mask, Buttons, Grids, DBGrids;



type

TFormZuminSearch = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Label1: TLabel;

MEJumin: TMaskEdit;

BtnSearch: TBitBtn;

DBGrid1: TDBGrid;

BtnClose: TBitBtn;

procedure BtnCloseClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BtnSearchClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

FormZuminSearch: TFormZuminSearch;



implementation



{$R *.DFM}



uses

DM_TWT, twtMain;



procedure TFormZuminSearch.BtnCloseClick(Sender: TObject);

begin

close;

end;



procedure TFormZuminSearch.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action := caFree;

end;



procedure TFormZuminSearch.BtnSearchClick(Sender: TObject);



begin

if Length(MEJumin.Text) = 0 Then

begin

Application.MessageBox('공란입니다. 주민등록번호를 넣어주세요','확인',MB_OK);

Exit;

end

else

begin

//DMtwt.TblExam.FindNearest([MEZumin.Text]);

//DBGrid1.SelectedField := TblExamSIZE;

//DBGrid1.SetFocus;

with DMtwt.QueryZumin do

begin

DisableControls;

close;

SQL.Clear;

SQL.Add('Select Juminno From Exam');

SQL.Add('Where Juminno= "' + MEJumin.Text + '" ');

//SQL.Add('And Juminno like "'+MEZumin.Text+'" ');

//Sql.ADD('Select ID From User ');

//Sql.Add('Where ID= "' + EditID.Text + '" ');

Open;

EnableControls;

end;





if DMtwt.QueryZumin.FieldByName('Juminno').asstring = MEJumin.Text Then

begin

//DBGrid1.SetFocus

DBGrid1.Setfocus; <---이 부분입니다.

end

else

begin

twtMainForm.MainBar.Panels[2].Text := '데이타가 존재하지 않습니다';

Application.MessageBox('데이타가 존재하지 않습니다','확인',MB_OK);

Exit;

end

end;

end;



end.

--------------------------------------------------------------------

6  COMMENTS
  • Profile
    김정배 1998.11.18 06:47
    델파이가 무언지 알고 십네요....



    델파이에 강력함을 가르쳐 주세요



    -- 답장 부탁합니다.

  • Profile
    redhead 1999.06.01 04:56
    if DMtwt.QueryZumin.FieldByName('Juminno').asstring = Jumin.Text Then

    begin

    //DBGrid1.SetFocus

    DBGrid1.Setfocus; <---이 부분입니다.

    end;





    //위의 코드는 Jumin.Text의 범호에 해당하는 사람의 Row가 Select되도록 하는 것인 듯한데... 방법이 틀린것 같습니다.



    Locate라는 Method를 써 보심이 어떨까요.

    다음.

    if not DMtwt.QueryZumin.Locate('Juminno',Jumin.Text,[]) then

    begin

    ShowMessage('자료가 없습니다.');

    end;

  • Profile
    이정욱 1998.11.21 14:58
    델파이란, C++같은 프로그래밍 언어 입니다.

    파스칼을 확장한 형태 입니다.

    즉, 델파이는 프로그램을 만드는 프로그래밍 언어 입니다.

    델파이가 강력하다고 하는것은 C++로 일주일동안 할것은 하루면 할 수 있다는것이죠.

    컴파일 속도도 빠르고, 실행 속도도 빠릅니다.

    특히 비주얼한 윈도우(폼) 디자이너가 있어서 상당히 빠르게 어플리케이션을 만들 수 있습니다.



    김정배 wrote:

    > 델파이가 무언지 알고 십네요....

    >

    > 델파이에 강력함을 가르쳐 주세요

    >

    > -- 답장 부탁합니다.





  • Profile
    이상석 1999.06.01 08:40
    redhead 께서 말씀하시기를...

    > if DMtwt.QueryZumin.FieldByName('Juminno').asstring = Jumin.Text Then

    > begin

    > //DBGrid1.SetFocus

    > DBGrid1.Setfocus; <---이 부분입니다.

    > end;

    >

    >

    > //위의 코드는 Jumin.Text의 범호에 해당하는 사람의 Row가 Select되도록 하는 것인 듯한데... 방법이 틀린것 같습니다.

    >

    > Locate라는 Method를 써 보심이 어떨까요.

    > 다음.

    > if not DMtwt.QueryZumin.Locate('Juminno',Jumin.Text,[]) then

    > begin

    > ShowMessage('자료가 없습니다.');

    > end;

    안녕하세요 이상석입니다.

    많은 도움이 되었습니다. 그런데 제가 원하는 것은요,

    어.. 그러니까 Jumin.Text의 값을 테이블에서 똑같은 것이 있으면

    DBGrid에서 보면 맨 좌측에 보면 화살표가 나오는데,

    그 화살표가 표시할 수 있도록하는 것입니다.

    해보니까 화살표가 안가니 메인 윈도우에 DBGrid도 안움직이고,

    찾는 것이 실패했네요. 다시알려주세요. 감사합니다.

    그럼 20000....

  • Profile
    김 완진 1998.12.13 02:01
    델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다.

    예를 들면 Visual C++은 C++언어를 위한 개발 환경이고, MS 에서 자체 개발한 MFC

    라는 라이브러리를 제공하고 있죠. Borland C++ 역시 C++ 언어를 위한 개발 환경이고 자사에서 개발한 OWL, BWCC 등의 라이브러리를 제공하고 있습니다.



    델파이라는 개발 환경은 Pascal 언어를 위한 개발 환경이고 자사가 개발한 VCL이라는 라이브러리를 제공하고 있죠. Pascal은 C/C++ 같은 순수 compiler 언어여서 compiler 실행화일이 따로 존재하고 Linker 실행화일이 분명히 따로 존재 합니다.

    델파이는 개발환경 내의 사용자 옵션에 맞게 compile 옵션을 생성해서 compiler 실행화일을 실행시켜준다고 생각하면 됩니다. Linker 역시 마찬가지죠.



    Turbo Pascal 이라는 옛날 Borland 제품을 기억 하실 겁니다. 이 역시 Pascal 언어를 위한 개발 환경인데 Delphi는 이 제품의 연장 선상에 있죠. Borland 사는 표준 Pascal에다 자사 나름대로의 언어적 기능을 향상 시켜왔습니다. 이렇게 형성된 Pascal을 Borland Pascal이라고도 부르죠. Turbo Pascal 6.0(5.5부턴가?) 부터 사용된 Pascal compiler는 객체 지향적인 기능을 집어넣어 Object Pascal이라는 별칭을 갖게 되었죠. 그후 Turbo Pascal 7.0 그리고 Turbo Pascal for Window 1.0 로 이어지고 최종적으로 Delphi 1.0 라는 제품이 나오게 된 것이죠. Delphi 1.0 에서 사용한 Pascal compiler는 Borland Pascal 8.0 라고도 불리었고, 이때서야 비로서 현재 Delphi 에서 사용하는 Object Pascal 언어가 재대로된 모습을 갖추게된 때 입니다. Borland Object Pascal 이 가지는 객체지향적인 기능은 C++ 과 비교 하면 없는 기능이 있는것도 사실입니다. 하지만 이는 단순히 비교 만으로 평가를 할 수 없는 것이, Pascal 언어가 주는 명료함은 C/C++에는 없는 것입니다.

    현재의 Delphi의 성능은 어느 툴과 비교 했을때 성능면에서 전혀 뒤지지 않는 다고 생각합니다. 혹자는 시스템 프로그래밍은 Visual C++ 로 해야 한다고 생각하는데 윈도우즈 프로그래밍은 운영체제에서 지원하는 API 함수에 의존하기 때문에 특정 툴이 적절하다 할 수는 없다고 봅니다. DLL 파일내의 함수를 Call 할 수만 있으면 되죠.

    얘기가 길어 졌네요. 하여튼 Delphi 는 순수 machine code를 생성하는 pascal compiler 를 사용하므로 생성된 실행화일의 성능이 뛰어납니다. 개발환경 역시 상당히 직관적이고 WYSWYG(What You See is What You Get)에 충실한 모습을 보여주고 있으며, 특정 분야에만 적절한 툴이 아닌 범용으로 사용될 수 있고 탁월한 생산성을 보여 줄 것입니다.



    PS : 저는 INPRISE 직원이 아닙니다.



  • Profile
    redhead 1999.06.01 18:40
    이상석 께서 말씀하시기를...

    > redhead 께서 말씀하시기를...

    > > if DMtwt.QueryZumin.FieldByName('Juminno').asstring = Jumin.Text Then

    > > begin

    > > //DBGrid1.SetFocus

    > > DBGrid1.Setfocus; <---이 부분입니다.

    > > end;

    > >

    > >

    > > //위의 코드는 Jumin.Text의 범호에 해당하는 사람의 Row가 Select되도록 하는 것인 듯한데... 방법이 틀린것 같습니다.

    > >

    > > Locate라는 Method를 써 보심이 어떨까요.

    > > 다음.

    > > if not DMtwt.QueryZumin.Locate('Juminno',Jumin.Text,[]) then

    > > begin

    > > ShowMessage('자료가 없습니다.');

    > > end;

    > 안녕하세요 이상석입니다.

    > 많은 도움이 되었습니다. 그런데 제가 원하는 것은요,

    > 어.. 그러니까 Jumin.Text의 값을 테이블에서 똑같은 것이 있으면

    > DBGrid에서 보면 맨 좌측에 보면 화살표가 나오는데,

    > 그 화살표가 표시할 수 있도록하는 것입니다.

    > 해보니까 화살표가 안가니 메인 윈도우에 DBGrid도 안움직이고,

    > 찾는 것이 실패했네요. 다시알려주세요. 감사합니다.

    > 그럼 20000....



    그렇담

    위의 방법이 정확합니다. ^^

    • 유동훈
    • 1999.06.02 00:55
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이현주
      1998.12.25 02:04
      asyncpro를사용하여 모뎀제어하는 프로글렘을하는데 comnumber를 property 나 messagebox에서 받지않고 w...
    • 이정욱
      1999.06.02 02:09
      Access Violation은 생성되지 않은객체나 이미 해제된 객체를 사용하려고 할때 나옵니다. 만약 한번 검색...
    • 박현정
      1998.12.25 05:40
      Async의 Comport컴포넌트를 이용하면 현재 시스템에서 사용가능한 comport들을 가져올 수 있습니다. 컴포트...
    • 김동수
    • 1999.06.01 23:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.02 00:15
      김동수 께서 말씀하시기를... > StringGrid에서 셀의 위치를 알아내서... > 자료를 셀 위치에 있는 레코...
    • 이정욱
      1998.12.13 05:29
      네.. 다 맞는 말씀입니다. 한가지만 빼구요.. 델파이는 파스칼에 기반된 언어입니다. 파스칼이 아닙니다...
    • 이상국
      1998.12.17 03:49
      이정욱 wrote: > 네.. 다 맞는 말씀입니다. > 한가지만 빼구요.. > 델파이는 파스칼에 기반된 언어입니...
    • 이정욱
      1998.12.17 08:58
      ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 ...
    • 개장수
      1999.01.05 17:10
      고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확...
    • 남윤혁
    • 1999.06.01 23:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.02 00:09
      Richedit에 포커스를 주고 mouse_event를 한번 써보세요.. The mouse_event function synthesizes m...
    • 이정욱
      1998.12.17 08:52
      You can read/write Korean via using HanMe Hangul 95 or UnionWay. It is the Korean Chractors emulati...
    • 이희우
    • 1999.06.01 22:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.02 02:06
      음.. 질문을 하신거 맞나요...? 질문을 이해할수가 없는데요...쩝.. 아니면 광고를 하신것인지... 이...
    • 도성현
    • 1999.06.01 20:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경수
      1999.06.02 04:19
      안녕하세요. 저도 회사 거래명세서(양식존재)를 출력하는 프로그램을 작성했었는데요. 퀵리포트로 하다가...
    • 김경수
    • 1999.06.01 13:51
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김 완진
      1998.12.13 01:57
      델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다. 예를 들면 Visual C++은 C++...
    • 이정욱
      1998.12.13 05:29
      네.. 다 맞는 말씀입니다. 한가지만 빼구요.. 델파이는 파스칼에 기반된 언어입니다. 파스칼이 아닙니다...
    • 이상국
      1998.12.17 03:49
      이정욱 wrote: > 네.. 다 맞는 말씀입니다. > 한가지만 빼구요.. > 델파이는 파스칼에 기반된 언어입니...
    • 이정욱
      1998.12.17 08:58
      ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 ...
    • 개장수
      1999.01.05 17:10
      고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확...
    • 1999.06.01 09:50
      김형철 께서 말씀하시기를... > > 델파이 4를 쓰고 있고 sql문장에서 아래와 같이 > > ...
    • 이정욱
      1998.12.17 08:52
      You can read/write Korean via using HanMe Hangul 95 or UnionWay. It is the Korean Chractors emulati...
    • 최진숙
    • 1998.12.15 00:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최재형
      1999.06.01 08:04
      안녕하세요. 혼자서 고민하다가 여기에 글을 올립니다. 제가 하려고 하는게 이미지박스에 마우스클릭하면...
    • 신재민
      1998.12.15 19:52
      어떤 종류의 프로그램을 만드시는지, 그리고 어싱크 컴포넌트를 사용하시는지, 좀 더 구체적으로 써주...
    • 전철호
      1999.06.02 02:39
      조민경 께서 말씀하시기를... > > 최재형 께서 말씀하시기를... > > 안녕하세요. > > 혼자서 고민하다...
    • 최진숙
    • 1998.12.15 00:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박형진
      1999.06.01 06:34
      프로그램과 일치하지 않는 해상도에서 실행시켰을때 해상도를 프로그램에 맞도록 변환시켜주는 함수를 알고...
    • 신재민
      1998.12.15 19:52
      어떤 종류의 프로그램을 만드시는지, 그리고 어싱크 컴포넌트를 사용하시는지, 좀 더 구체적으로 써주...
    • 글쎄요.
      1999.06.01 19:34
      박형진 께서 말씀하시기를... > 프로그램과 일치하지 않는 해상도에서 실행시켰을때 해상도를 프로그램에 ...
    • 구창민
      1999.06.01 06:26
      이승윤 께서 말씀하시기를... > Button1 := TButton.Create(Self); > Button1.Caption := 'Button1'; > ...
    • 이승윤
      1999.06.01 22:20
      질문에 답해 주셔서 정말로 감사합니다. 덕분에 막히 속히 훤하게 뚤린것 같습니다. 질문했던 문제가 해...
    • 조제현
    • 1999.06.01 04:49
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김 완진
      1998.12.13 01:57
      델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다. 예를 들면 Visual C++은 C++...
    • 이정욱
      1998.12.13 05:29
      네.. 다 맞는 말씀입니다. 한가지만 빼구요.. 델파이는 파스칼에 기반된 언어입니다. 파스칼이 아닙니다...
    • 이상국
      1998.12.17 03:49
      이정욱 wrote: > 네.. 다 맞는 말씀입니다. > 한가지만 빼구요.. > 델파이는 파스칼에 기반된 언어입니...
    • 이정욱
      1998.12.17 08:58
      ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 ...
    • 개장수
      1999.01.05 17:10
      고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확...
    • 이상석
    • 1999.06.01 04:22
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 김정배
      1998.11.18 06:47
      델파이가 무언지 알고 십네요.... 델파이에 강력함을 가르쳐 주세요 -- 답장 부탁합니다.
    • redhead
      1999.06.01 04:56
      if DMtwt.QueryZumin.FieldByName('Juminno').asstring = Jumin.Text Then begin ...
    • 이정욱
      1998.11.21 14:58
      델파이란, C++같은 프로그래밍 언어 입니다. 파스칼을 확장한 형태 입니다. 즉, 델파이는 프로그램을 만...
    • 이상석
      1999.06.01 08:40
      redhead 께서 말씀하시기를... > if DMtwt.QueryZumin.FieldByName('Juminno').asstring = Jumin...
    • 김 완진
      1998.12.13 02:01
      델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다. 예를 들면 Visual C++은 C++...
    • redhead
      1999.06.01 18:40
      이상석 께서 말씀하시기를... > redhead 께서 말씀하시기를... > > if DMtwt.QueryZumin.FieldBy...
    • Heaven
    • 1999.06.01 04:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.06.01 05:04
      Heaven 께서 말씀하시기를... > 안녕하세요... > > 이렇게 자주 질문을 드리는군요. > 제가 FieldEdit...
    • Heaven
      1999.06.01 20:58
      고맙습니다. redhead님... 답변 잘 보았습니다. 해주신대로 Post를 하니 변경이 됩니다. 그런데, 에디...
    • 이정욱
      1998.12.13 05:29
      네.. 다 맞는 말씀입니다. 한가지만 빼구요.. 델파이는 파스칼에 기반된 언어입니다. 파스칼이 아닙니다...
    • 이상국
      1998.12.17 03:49
      이정욱 wrote: > 네.. 다 맞는 말씀입니다. > 한가지만 빼구요.. > 델파이는 파스칼에 기반된 언어입니...
    • 이정욱
      1998.12.17 08:58
      ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 ...
    • 개장수
      1999.01.05 17:10
      고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확...
    • 류성호
    • 1999.06.01 00:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 여재모
      1998.12.10 19:14
      폼 print시 제대로 출력이 안됩니다. 전 폼에 image화일을 여러개 불러내서 print할려는데 form...
    • 이정욱
      1998.12.11 00:20
      폼을 프린트 하지 마시고 Bitmap을 생성한후에 그 여러개의 이미지를 그 BItmap에 붙이세요. 그런후 그 것...
    • 김성관
    • 1999.05.31 23:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 여재모
      1998.12.10 19:14
      폼 print시 제대로 출력이 안됩니다. 전 폼에 image화일을 여러개 불러내서 print할려는데 form...
    • 이정욱
      1999.06.01 02:32
      각각의 유닛에서 서로 참조하려고 해서 그런것입니다. 소스의 맨위 Uses 절을 보셔서 두개의 유닛이 서로 ...
    • 이정욱
      1998.12.11 00:20
      폼을 프린트 하지 마시고 Bitmap을 생성한후에 그 여러개의 이미지를 그 BItmap에 붙이세요. 그런후 그 것...
    • 배수영
      1999.05.31 23:09
      아래는 제가 작성한 32bit dll file(omin32.dll)의 함수를 선언부분입니다. 작업환경은 delphi2.0 32bit환...
    • 이정욱
      1998.12.07 21:49
      음.. 정확하게 해보지는 못했습니다. 그런데 이것을 쓰면 어떨까요? FieldValues 예를들면.. Customers...
    • 안치봉
      1999.06.01 00:34
      배수영 께서 말씀하시기를... > 아래는 제가 작성한 32bit dll file(omin32.dll)의 함수를 선언부분입니다...
    • 박성진
      1998.12.09 02:50
      위의 질문을 다시하겠습니다. 마이크로소프트 Access97을 이용해서 데이터베이스를 구축하였습니다. 마이...