Topic: Помогите с оптимизацией кода
Доброй ночи Уважаемые!
Все думал думал про оптимизацию, откладывал в долгий ящик, но теперь когда в гриде имеется около 2 тысяч записей появляются тормоза.
Основная причина связана с раскраской по статусу комбобокса при наведнии мышью.
Другая причина в постоянном dbUpdate при клике (так как в базе работаем на 4 компьютерах и поддерживаем актуальные данные)
Может как то можно оптимизировать код, наткнулся на форуме про процедуры BeginUpdate, EndUpdate, но нечего про их применение не нашел. Буду благодарен за любую информацию
С Уважением Дмитрий
procedure Form1_TableGrid1_OnMouseMove (Sender: string; Shift, Alt, Ctrl: boolean; X, Y: Integer);
var
i,c: integer;
begin
c := Form1.TableGrid1.RowCount-1;
for i := 0 to c do
begin
if Form1.TableGrid1.Cells[8,i] = 'Принято' then Form1.TableGrid1.Cell[8,i].Color := clYellow;
if Form1.TableGrid1.Cells[8,i] = 'Ремонтируется' then Form1.TableGrid1.Cell[8,i].Color := clAqua;
if Form1.TableGrid1.Cells[8,i] = 'Готов' then Form1.TableGrid1.Cell[8,i].Color := clLime;
if Form1.TableGrid1.Cells[8,i] = 'На диагностике' then Form1.TableGrid1.Cell[8,i].Color := clSilver;
if Form1.TableGrid1.Cells[8,i] = 'Без ремонта' then Form1.TableGrid1.Cell[8,i].Color := clRed;
if Form1.TableGrid1.Cells[8,i] = 'Согласовать' then Form1.TableGrid1.Cell[8,i].Color := clSkyBlue;
if Form1.TableGrid1.Cells[8,i] = 'Поиск зип' then Form1.TableGrid1.Cell[8,i].Color := cl3DLight;
if Form1.TableGrid1.Cells[8,i] = 'Ожидает запчасти' then Form1.TableGrid1.Cell[8,i].Color := clFuchsia;
if Form1.TableGrid1.Cells[9,i] = 'Нет' then Form1.TableGrid1.Cell[9,i].Color := clInactiveCaption;
if Form1.TableGrid1.Cells[9,i] = 'Да' then Form1.TableGrid1.Cell[9,i].Color := clLime;
if Form1.TableGrid1.Cells[10,i] = 'Нет' then Form1.TableGrid1.Cell[10,i].Color := clInactiveCaption;
if Form1.TableGrid1.Cells[10,i] = 'Да' then Form1.TableGrid1.Cell[10,i].Color := clLime;
end;
end;
procedure Form1_TableGrid1_OnClick (Sender: string);
begin
Form1.TableGrid1.dbUpdate; //обновление основной таблицы с ремонтами
Form1.TableGrid2.dbUpdate; // обновление задач для приемки
Form1.Button5.Click; // прикручен поиск к кнопке для вывода детальной информации о ремонте
Form1.Button8.Click; // прикручен поиск к кнопке для вывода детальной информации о запчастях
end;