Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#17

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 25. Okt 2004, 00:12
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.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat