Witam. Mam problem z bazą danych paradox. Używam następujące komponenty: TStatusBar, TTable, TDataSource i TSMDBGrid (odpowiednik TDBGrid firmy Scalabium Software).
Program łączy się z lokalną bazą przez BDE, wprowadzanie elementów bezpośrednio z DBGrida.
Chciałbym aby przy niskich wartościach w określonych kolumnach pojawiał się odpowiedni tekst w StatusBar (np. Uwaga niski stan!
). Kolorowanie komórek o niskim stanie osiągnąłem poprzez wykorzystanie zdarzenia OnGetCellParams. Nie mam jednak pomysłu jak sprawdzić stany komórek z określonej kolumny i pod jakie zdarzenie to podpiąć aby automatycznie aktualizowało mi tekst w StatusBarze po zmnianie wartości komórki w DBGrid. Próbowałem wykorzystać do tego zdarzenie OnGetCellParams ale z miernym rezultatem. Pewnie dlatego że zdarzenie to jest wywoływane dla każdej komórki osobno w DBGrid.
Może ktoś miał podobny problem i wie jak to zrobić?
Moja procedura OnGetCellParams:
procedure TForm1.SMDBGrid1GetCellParams(Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
if Assigned(Field) and (UpperCase(Field.FieldName) = 'STAN SKLEP') then
begin
if Field.AsInteger < 4 then
begin
AFont.Style := [fsBold];
Background := clRed;
nsklep:=true;
end
else
begin
AFont.Style := [];
If Highlight then
begin
AFont.Color:=clWhite;
Background := clBlue;
end
else
begin
AFont.Color:=clBlack;
Background := clWhite;
end;
end;
end;
if Assigned(Field) and (UpperCase(Field.FieldName) = 'STAN MAGAZYN') then
begin
if Field.AsInteger < 4 then
begin
AFont.Style := [fsBold];
Background := clRed;
nmagazyn:=true;
end
else
begin
AFont.Style := [];
If Highlight then
begin
AFont.Color:=clWhite;
Background := clBlue;
end
else
begin
AFont.Color:=clBlack;
Background := clWhite;
end;
end;
end;
end;