Hallo, ich ändere im OnStateChange Ereignis die Farben der Komponenten auf meinem Formular und zwar abhängig vom gerade verwendeten Status, Einfügen, Ändern etc.
Delphi-Quellcode:
...
case (sender as TDataSource).DataSet.State of
dsEdit, dsInsert: begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TDBEdit then TDBEdit(Components[i]).Color := clWhite;
if Components[i] is TDBLookupComboBox then TDBLookupComboBox(Components[i]).Color := clWhite;
if Components[i] is TDBMemo then TDBMemo(Components[i]).Color := clWhite;
end;
end;
dsBrowse: begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TDBEdit then TDBEdit(Components[i]).Color := $00FFE6E1;
if Components[i] is TDBLookupComboBox then TDBLookupComboBox(Components[i]).Color := $00FFE6E1;
if Components[i] is TDBMemo then TDBMemo(Components[i]).Color := $00FFE6E1;
end;
end;
...
Jetzt hab ich auf dem Formular noch eine Checkbox mit der ich mittels AutoEdit meiner DataSource alle Komponenten auf sog. 'Dauerweiß' einfärben will.
Dabei sollen alle Komponenten, solange die Checkbox gecheckt ist, weiß bleiben. d.h. auch beim weiteren Scrollen, blättern usw.
Erst wenn die Checkbox wieder 'unchecked' ist, soll auch die Farbe der Komponenten wieder geändert werden.
Delphi-Quellcode:
...
begin
if CheckBox2.Checked then
DM1.DSPOS.AutoEdit := true
else
DM1.DSPOS.AutoEdit := false;
end;
...
Alleine der Aufruf von AutoEdit := ture ändert die Farben noch nicht.
Wie kann ich das am besten lösen?