Q&A

  • error - Grid index out of range....?
처음 보는 error 데요.. index의 범위를 벗어나다????



기능을 추가하고 있었는데, edit 아래에 dblistbox를 놓고, visible을 false로,



formcreate될때 table에 있는 특정 field를 while문으로 쑤셔넣고,



edit change event에서 비슷한 단어를 찾아서 enter눌르면, edit에 집어넣는



상황입니다. 신기하게도 잘 되길래, 원래 프로젝트에다가 합체를 했습니다.



원래 프로젝트 form에는 dbgrid가 3개(master/detail로 물려 있슴)있는데요,



첫번째, 두번째 grid에서는 이상이 없는데, 마지막 dblistbox에서 참조한 field가



있는 세번째 grid에서 스크롤바를 아래로 잡아 내리면,



'grid index out of range'라고 멋지게 뜹니다. 갖은 에러를 많이 당하고 있지만



왠지 불길한 예감(?)이 듭니다. Q&A를 찾아 보다 보니까 더욱.....음



부디 여러분들의 따듯한 손길을 기다리 겠습니다. 왕초보라서 자세히 좀...



네가지 정도의 event가 있습니다.



procedure TForm1.FormCreate(Sender: TObject);

var

pibada : String;

begin

Query1.Active := True;

DBListBox1.Clear;

Query1.First;

while not(Query1.EOF) do begin

pibada:= Query1.FieldByName('hosilname').AsString;

DBListBox1.Items.Add(''+pibada+'');

Query1.Next;

end;

end;



procedure TForm1.Edit1Change(Sender: TObject);

var

S: array[0..255] of Char;

i : Integer;

begin

StrPCopy(S, Edit1.Text);

DBListBox1.visible := True;

for i := 0 to DBListBox1.Items.Count - 1 do begin

if Pos(Trim(Edit1.Text), DBListBox1.Items[i]) > 0 then begin

DBListBox1.ItemIndex := i;

Break; //한번만 찾고 중지입니다.

end;

end;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

Const MVK_Return : Char = #13;

var pibada_field : Integer;

begin

if Key = #13 then begin

DBListBox1.SetFocus;

pibada_field := DBListBox1.Items.Count;

while pibada_field > 0 do begin

pibada_field := pibada_field - 1;

if DBListBox1.Selected[pibada_field] = True then begin

Edit1.Text := DBListBox1.Items[pibada_field];

end;

end;

end;

DBListBox1.Visible := False;

end;



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

begin

DBListBox1.Clear;

end;



ps : 혹시 참조필드를 인덱스로 잡지 않아서 그러나 했는데 상관 없이 에러를

아주 잘 뿌려주더군요.



0  COMMENTS
    • 술친구
    • 2000.03.23 00:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍세비
      2000.03.23 02:15
      술친구 wrote: > 안녕하세요.. 술친굽니다. > 제가 질문하고 싶은것은 다름이 아니라 > 윈2000을 깔고 ...
    • 술친구
      2000.03.23 02:58
      그때의 환경은 윈2000 Pro Kor RTM에 델5 Ent 입니다.
    • 권오준
    • 2000.03.22 23:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:34
      Stored Procedure를 작성하셨으면.. TStoredProcedure를 사용하셔서 호출하세요.. From 류.. 권...
    • hee
    • 2000.03.22 23:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:27
      자주 나오는 질문이네요.. 파라메터를 동적으로 SQL문으로 입력하시면.. 아래와 같은 형식으로 각 파라메...
    • hee
      2000.03.23 01:01
      언제 어떻게 해야 하나요? 구체적으로 예를 들어 주실수는 없는지요 류종택 wrote: > 자주 나오는 질문이...
    • 류종택
      2000.03.23 01:22
      아래와 같이 하세요.. From 류.. --------- With Query do Begin sql.add('select ST_C...
    • 델초
    • 2000.03.22 22:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:31
      델파이의 메인메뉴의 환경설정에서 자동저장 중.. Desktop을 지정하시면, 최종 사용하시던 상태로 저장됩...
    • 델초
    • 2000.03.22 22:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:28
      이진 데이타 타입을 이야기 합니다.. 즉 메모나 그림과 같이 사이즈가 일정하지 않은 데이타를.. 필드로 ...
    • 좋은날
      2000.03.23 22:22
      류종택 wrote: > 이진 데이타 타입을 이야기 합니다.. > 즉 메모나 그림과 같이 사이즈가 일정하지 않은 ...
    • door21
    • 2000.03.22 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.22 23:38
      아래는 해당 API의 설명 부분입니다.. From 류.. --------- The TerminateProcess function ter...
    • 이광민
    • 2000.03.22 21:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 까마귀
      2000.03.23 00:37
      이광민 wrote: > 델파이를 배우는 초보학생인데요 > SQL Explorer에서 SampleMSSQL의 Table을 보려구 하...
    • 염경철
      2000.03.22 22:14
      안녕하세요. 질문내용이 패스워드를 치고 연결을 하시면 되는데 어디서 어떻게 문제가되는지요. 이광...
    • 최용일
      2000.03.22 22:24
      그냥 간단히 폼을 프린트하려면 TForm.Print메소드를 쓰세요. 폼의 클라이언트 영역을 프린트해 줍니다. ...
    • 몽이
    • 2000.03.22 21:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이준해
      2000.03.22 23:18
      Source 에서 :fieldName 이라고 적용하셨나요 ? parameter로 전달된 fieldName을 사용하고 싶으시다면 So...
    • 이만준
      2000.03.22 23:16
      안녕하세요 sql.add('select distinct :fieldname from distribute_list'); 이부분을이렇게 고치고요....
    • 초보맨
    • 2000.03.22 21:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 23:04
      초보맨 wrote: > dbgrid 에 a필드에는 query1의 결과를 b필드에는 query2 의 결과를 > 이렇...
    • 박철
    • 2000.03.22 21:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류한규
      2000.03.23 16:16
      TreeView와 DB를 연동하여 사용함은 어떠할지... 저는 박철님 형태의 자료를 Treeview를 사용하여 조직...
    • 조규춘
      2000.03.22 21:04
      황영철 wrote: > 클릭시 현재 로우값을 알수가 없을까요 > 고수님의 높은 무공은 전수해주시면 > 감사...
    • 조규춘
      2000.03.23 01:37
      죄송 제목 그대로 내가 착각을 했군요! 앞으로 조심을....... 흑흑흑 조규춘 wrote: > 황영철 wrote: ...
    • 황영철
      2000.03.22 21:27
      > property RecNo: Integer; 속성이 있습니다. > > 그러니끼니 > 버튼 클릭시 > form1.caption := ...
    • 최용일
      2000.03.22 21:56
      TStringGrid.Row - 현재 선택된 셀의 Row인덱스입니다. TStringGrid.Col - 현재 선택된 셀의 Column인덱스...
    • Paddy
      2000.03.23 02:27
      procedure TForm.GridClick(Sender: TObject); var Str : String; begin With StringGrid do ...
    • 이재호
    • 2000.03.22 20:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 22:59
      이재호 wrote: > DLL를 RUNTIME PACKAGE로 만드는 방법과 > 만든후 배포하는 방법을 자세히 > 예제를 ...
    • 이수정
    • 2000.03.22 20:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이수정
      2000.03.22 20:43
      이수정 wrote: > 새로 생성할때 > > (1) Database Driver Name > > -> MSSQL 로 설정해 놓으니....
    • 홍세비
      2000.03.22 21:51
      이수정 wrote: > > BDE 툴에서.. [+]를 누르면요... > > User Name 으로 설정해 놓은.. sa 로 비밀...
    • 조규춘
      2000.03.22 20:41
      이수정 wrote: > 새로 생성할때 > > (1) Database Driver Name > > -> MSSQL 로 설정해 놓으니....
    • 초보
    • 2000.03.22 19:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 허창회
    • 2000.03.22 19:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.22 20:23
      허창회 wrote: > rs232 통신을 할려고 하는데 통신 콤포넌트를 어떻게 등록하는지요... > 전 델파이가 첨...
    • 이빈
    • 2000.03.22 19:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      2000.03.22 22:45
      안녕하세요... 아래 쓰신 코드는 컴포넌트 코드이군요... TBitBtn 을 상속받아 새 컴포넌트틀 만든 ...
    • 좋은날
      2000.03.23 22:36
      하소연 wrote: > 안녕하세요 다시 한텔에 도움을 받고자 띄웁니다. > 그동안 이곳 저곳에 32k 이상의 화...