Q&A

  • Re: DBGride안에 데이타 찾기
form1 의 dbgrid의 특정내용을 form2에 나타나려고 한다면

table을 같은걸로(하나로) 사용하세요.

자세하게 설명하면

form1 의 버튼클릭에서는 form2를 호출하시고

form2 의 formcreate나 버튼이벤트에서 아래와 같이 ...



edit1.text := form1.table1.fieldbyname('code').asstring ;



uses에는 각각 서로의 폼을 연결만 시켜주면 됩니다.





같은걸로 사용못한다면 findkey를 사용하시는데

datasource의 ondatachange 이벤트에서 에러가 난다면

(에러가 나지 않더라도 ondatachange는 권장하고 싶지 않네요. 왜냐하면 다른폼을

띄우지 않으려고 해도 그 이벤트는 계속 발생을 하니까요)

버튼클릭시에만 key값을 저장해서 다른폼을 띄울때 사용하십시요.

이런방법의 findkey로도 되지않고 동일table, 동일레코드라면 Bookmark를 써 보심이...



var AA : Tbookmark ; // 어디선가 전역변수로 선언 하시고요



버튼이벤트에서

begin

AA := table1.GetBookmark ;

end ;



다른폼의 create이벤트에서

begin

table2.Active := True ;

table2.GotoBookmark(AA) ;

table2.FreeBookmark(AA) ;

end ;



이상있으시면 답변남겨주세요.

성공하시길 ....





















류동기 wrote:

> 안녕하세요 델파이 초보입니다.

> DBGride안의 어느 한 레코드의 내용을 특정키를 눌렀을때 다른 폼에 나타내려합니다.

> 그런데 다른 폼을 생성시키면 DBGride의 커서위치가 아닌 처음레코드를

> 읽어오는군요.

> temp 테이블을 사용했구요 첫번째 폼에서 변수를 사용하여 DBGride의 현재키를

> 저장(datasource의 ondatachange 이벤트에서)하고

> 그 변수를 이용하여 두번째폼에서 findkey로 데이타를 찾아서 처리했는데

> 이상하네요.

> 고수님들의 조언을 필요로 합니다.

> 많은 도움을 주시면 고맙겠습니다.

0  COMMENTS