많은 도움을 받고 있어서 감사를 먼저 드립니다.
dbgrid 에서 화살표를 위 아래,좌,우로 옮겼을때에요..
연결되어진 DBEdit 의 값도 자동으로 변환을 하는데요..
이 dbedit 의 내용을 edit에도 같이 보여주고자 합니다.
그런데 문제는 어떤 이벤트를 줘야 하나요?
전 몰라서 cellclick, keydown... 등 다 해주었는데요..
그리고 더 욱 문제는 화살표를 아래로 내렸을 경우에요
dbedit에는 내용이 제대로 변합니다. 그런데 edit의 내용은
그 전의 내용이 됩니다.
즉 3번째줄에서 4번째로 화살표를 내렸는데요..
dbedit에는 4번째의 내용이 들어가지만
edit에는 3번째의 내용이 들어가는군요..
어떻게 해결해야 할까요? 답변 부탁드립니다.
> 많은 도움을 받고 있어서 감사를 먼저 드립니다.
> dbgrid 에서 화살표를 위 아래,좌,우로 옮겼을때에요..
> 연결되어진 DBEdit 의 값도 자동으로 변환을 하는데요..
> 이 dbedit 의 내용을 edit에도 같이 보여주고자 합니다.
> 그런데 문제는 어떤 이벤트를 줘야 하나요?
> 전 몰라서 cellclick, keydown... 등 다 해주었는데요..
> 그리고 더 욱 문제는 화살표를 아래로 내렸을 경우에요
> dbedit에는 내용이 제대로 변합니다. 그런데 edit의 내용은
> 그 전의 내용이 됩니다.
> 즉 3번째줄에서 4번째로 화살표를 내렸는데요..
> dbedit에는 4번째의 내용이 들어가지만
> edit에는 3번째의 내용이 들어가는군요..
> 어떻게 해결해야 할까요? 답변 부탁드립니다.
>
>
이런 방법도 있어서 올립니다.
Datasource의 Ondatachange이벤트에다 기입을 하시면 레코드위치가 바뀔때마다 edit의 내용을 변경할 수 있습니다.
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if table1.fieldvalues['name']=null then
edit1.text:=''
else
edit1.text:=table1.fieldvalues['name'];
end;
위와같이 한 이유는 DBGrid의 마지막 문장에서 화살표를 밑으로 내리면 자동으로 입력상태가 되고 그럴경우 edit1의 입력하는 값의 타입이 맞지 않아서 에러가 발생합니다.
DBGrid의 Option에서 dgediting을 false로 설정하시든지 아니면 위와같이 코딩하시면 될것 같습니다. 아래분께서 답변을 해주셨지만 구현방법은 여러가지라서 그냥 참고나 될까해서 올렸습니다.