formun ilk açılışında verdiği hatayı şu şekilde giderdim
Kod: Tümünü seç
if cxGrid1TableView1.DataController.RecordCount<>0 then
begin
try
cxGrid1TableView1.DataController.OnDataChanged := nil;
try
{ShowMessage('değer 1:' + VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[5]));
ShowMessage('değer 1:' + VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[6])); }
cxGrid1TableView1.Controller.FocusedRecord.Values[6] :=
StrToFloat(VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[5])) *
StrToFloat(VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[4]));
except
try
cxGrid1TableView1.Controller.FocusedRecord.Values[6] := '';
except
end;
end;
finally
cxGrid1TableView1.DataController.OnDataChanged := cxGrid1TableView1DataControllerDataChanged;
end;
end;
daha sonra her yeni satır eklediğimde hesaplama yaptıracağım fieldlara 0 değerini aktarıyoeum
Kod: Tümünü seç
with cxGrid1TableView1.DataController do
begin
Values[RecordCount-1 ,0] :='0';Values[RecordCount-1 ,1] :='0';
Values[RecordCount-1 ,2] :='0';Values[RecordCount-1 ,3] :='0';
Values[RecordCount-1 ,4] :='0';
Values[RecordCount-1 ,5] :='1'; Values[RecordCount-1 ,6] :='0';
Values[RecordCount-1 ,7] :='0'; Values[RecordCount-1 ,8] :='0';
Values[RecordCount-1,9] :='0'; Values[RecordCount-1 ,10] :='0';
Values[RecordCount-1 ,11] :='0'; Values[RecordCount-1 ,12] :='0';
end;
cxGrid1TableView1.ApplyBestFit();
tek sıkıntı ilk satır oluşturuken ve son eklenen satırın güncellenmesi iptal edilirken yaşıyorum
ilk satır oluşturuken cxgrid deki alan sayısının 2 katı kadar hata veriyor satır güncellemesini iptal ederken 2 kez hata veriyor
https://yadi.sk/d/XV8BnCLJscmEW
bu linkte kodların olduğu bir exe var bakabilirseniz memnun olurum...