안녕하세요...
델파이 초보입니다.
정말 급해서 그러는데 답변좀 부탁드립니다.
DBGrid를 사용합니다.
(데이타를 처음 보여 줄때 - DBGrid)
aaa bbb ccc ddd
1 2 1 10
1 2 1 30
0 0 0 0
(처리내용)
1) ccc := bbb - aaa;
2) ddd := ccc * 10;
(bbb열에서 Enter Key를 수정후 (3번째행은 2를 입력) - DBGrid)
aaa bbb ccc ddd
1 2 1 10
1 2 1 30 <-- 10으로 수정되었다가 원상복귀
0 2 2 20 <-- bbb에 2를 입력
bbb열의 첫번째와 두번째행은 Enter만 치고 내려왔고
3번째행에서 2를 입력하면 두번째행의 ddd가 원상복귀됨.
코딩 : procedure Tform1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if DBGrid1.SelectedIndex = 1 then
begin
aaa;
end;
DBGrid1.Perform(WM_KEYDOWN,VK_DOWN,0);
Key := #0;
end;
end;
procedure Tform1.aaa;
begin
query1.fieldbyname('ccc').asfloat := query1.fieldbyname('bbb').asFloat -
query1.fieldbyname('aaa').asfloat;
query1.fieldbyname('ddd').asfloat := query1.fieldbyname('ccc').asfloat * 10;
end;
DBGrid 옵션 -> dgAlwaysShowEditor, dgRowSelect, dgMuktiSelect 만 False
나머지 옵션은 True
query1 옵션 -> CachedUpdates, RequestLive : True
(query Component는 zeos, 델파이 버젼은 6)
설명은 길지만 제대로 했는지 모르겠네요.. ^^;;;
꼭 답변좀 부탁드립니다.
처리해 보세요.