Hallo,
hast dich ja mächtig angestrengt. Mein Ansatz wäre eher minimalistisch. Die Daten würde ich nicht im
CSV-Format speichern, sondern als INI-Datei:
Code:
[HP]
14=10,00
17=10,00
[Lexmark]
19=10,00
20=10,00
[Canon]
M-6=10,00
BCI-21=10,00
Im Programm würde ich die Daten über ein TMemIniFile ansprechen. In der ComboBox würde ich nur die Artikel-Bezeichnungen anzeigen - den Hersteller kann ich später zusteuern, wenn der Bestellzettel aufgebaut wird. Die ComboBox von HP würde ich im Ereignis FormCreate() so befüllen:
Delphi-Quellcode:
const
HP_SECTION = 'HP';
procedure TDemoForm.FormCreate(Sender: TObject);
begin
iniFileName := ChangeFileExt(ParamStr(0), '.ini');
ini := TMemIniFile.Create(iniFilename);
ini.ReadSection(HP_SECTION, HpComboBox.Items);
end;
Wenn in einem SpinEdit die Anzahl der Artikel verändert wird, dann kann in einem Panel der Gesamtpreis aktualisiert werden:
Delphi-Quellcode:
procedure TDemoForm.HpSpinEditChange(Sender: TObject);
var
sArtikel: string;
dPreis: Double;
begin
with HpComboBox do
sArtikel := Items[ItemIndex];
dPreis := ini.ReadFloat(HP_SECTION, sArtikel, 0);
HpPanel.Caption := Format('%m', [HpSpinEdit.Value * dPreis]);
end;
Nur ein Vorschlag.
Grüße vom marabu