Hallo needatip,
Zitat:
Muss noch über den CheckListBox-Index auf die richtige BRA_ID kommen.
sehr gut! Du benötigst zu einem Bezeichner die zugehörige ID, die kannst du zwar aus der Tabelle auslesen, oder aber du merkst sie dir bereits beim Einlesen. Und da kam meine Idee her, sich die ID als "Objekt" zu merken:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
TabBranchen.Open;
while Not TabBranchen.Eof do
begin
CheckListBox1.Items.AddObject(TabBranchenBezeichner.AsString,
TObject(TabBranchenNr.AsInteger));//<- Nr als Object speichern
TabBranchen.Next;
end;
DataSource1DataChange(Self, nil);
end;
Beim Klicken:
Delphi-Quellcode:
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
var
i : Integer;
begin
for i := 0 to CheckListBox1.Count-1 do
begin
if CheckListBox1.State[i] = cbChecked then
begin
if Not TabAdrBra.Locate('Bra_ID',
Integer(CheckListBox1.Items.Objects[i]), []) then
begin
TabAdrBra.Append;
// TabAdrBraNr.AsInteger wird über AutInc gesetzt
TabAdrBraAdr_ID.AsInteger := TabAdressenNummer.AsInteger;
TabAdrBraBra_ID.AsInteger := Integer(CheckListBox1.Items.Objects[i]);
// hier wird die Nr wieder ausgelesen
TabAdrBra.Post;
end;
end
else begin
if TabAdrBra.Locate('Bra_ID',
Integer(CheckListBox1.Items.Objects[i]), []) then
TabAdrBra.Delete;
end;
end;
end;
Jetzt musst du dir noch überlegen, was in die DataDourceChange Methode muss, die aufgerufen wird, wenn der Nutzer zu einer anderen Adresse geht.