Hai,
ich habe mal schnell das hier getippelt. Die Zuordnung welche ComboBox bei was die Farbe ändert mache ich einfach über die TAG-Eigenschaft der Combobox. Bei mir ist:
Tag = 0 = Memo1
Tag = 1 = ListBox1
Das sollte sich leicht erweitern lassen
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
ini : TIniFile;
begin
ComboBox1.Clear;
ComboBox2.Clear;
ComboBox1.Items.AddObject('blau',TObject(clblue));
ComboBox1.Items.AddObject('rot',TObject(clred));
ComboBox1.Items.AddObject('grün',TObject(clgreen));
ComboBox2.Items.Assign(ComboBox1.Items); // Einträge in zweite CB kopieren
ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'farben.ini');
try
ComboBox1.ItemIndex := ini.ReadInteger('farben','memo1',0);
ComboBox2.ItemIndex := ini.ReadInteger('farben','listbox1',0);
finally
ini.Free;
end;
ComboBox1.OnChange(ComboBox1); // Das OnChange auslösen
ComboBox1.OnChange(ComboBox2);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
ini : TIniFile;
begin
ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'farben.ini');
try
ini.WriteInteger('farben','memo1',ComboBox1.ItemIndex);
ini.WriteInteger('farben','listbox1',ComboBox2.ItemIndex);
finally
ini.Free;
end;
end;
procedure TForm1.AlleComboBoxChange(Sender: TObject);
var
myCombo : TComboBox;
begin
mycombo := Sender As TComboBox;
Case (myCombo.Tag) of
0: Memo1.Color := TColor (myCombo.Items.Objects[myCombo.ItemIndex]);
1: ListBox1.Color := TColor (myCombo.Items.Objects[myCombo.ItemIndex]);
end;
end;
P.S.: Allen Comboboxen ist das selbe OnChange-Ereigniss zugewiesen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"