AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelleninhalt in Checklistbox anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelleninhalt in Checklistbox anzeigen

Ein Thema von needatip · begonnen am 20. Okt 2004 · letzter Beitrag vom 25. Okt 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

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

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 23. Okt 2004, 14:03
Hallo needatip,

du läufst durch die Tabellee und suchst den entsprechenden Bezeichner in der Liste mit IndexOf:

Delphi-Quellcode:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
   i, index: Integer;
begin
   for i := 1 to CheckListBox1.Count do
      CheckListBox1.State[i-1] := cbUnchecked;
   Table2.Open;
   Table2.First;
   while not Table2.Eof do
   begin
      index := CheckListBox1.Items.IndexOf(Table2Branchen.AsString);
      if index > -1 then
         CheckListBox1.State[index] := cbChecked;
      Table2.Next;
   end;
end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 23. Okt 2004, 16:38
Danke für die schnelle Antwort;
Warum zum Teufel bekomme ich jetzt die Compilermeldung, dass 'cbUnchecked' ein undefinierter Bezeichner ist.
Hab ich irgendetwas nicht eingebunden (uses) oder so ?
Habs doch auch richtig geschrieben.
Tut mir leid - bin halt kein Ass im Programmieren.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

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

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 23. Okt 2004, 16:41
Hallo needatip,

in Delphi 7 sind die Konstanten cbChecked und chUnchecked in der Unit StdCtrls definiert.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 24. Okt 2004, 13:30
Ok - jetzt benötige ich nur mehr die OnClickCheck-Event Routine, den Rest kann ich dann noch verfeinern.
Danke im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

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

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 24. Okt 2004, 14:55
Hallo needatip,

wo ist denn das Problem? Wie weit bist du gekommen als du versucht hast die Methode zu schreiben?

Ich hab zwar eine Lösung geschrieben, aber die möchte ich dir nicht einfach so geben. Du solltest zunächste einmal deine OnCreate Methode so anpassen, dass du dir neben dem Bezeichner der Branche auch die ID merkst. Das könntest du z.B. mit AddObject machen, wobei du als Objekt einfach einen gecasteten Integer übergibst, denn TObject ist ja letztlich eine Adresse und bietet damirt genug Platz für einen Integer.
Du könntest als Objekt also z.B. TObject(TabBranchenNr.AsInteger) benutzen. Versuche dann einmal die OnClickCheck Methode zu schreiben, bzw. sage genau wo das Problem ist.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Tabelleninhalt in Checklistbox anzeigen

  Alt 24. Okt 2004, 21:18
Also das mit dem TObject hab ich nicht verstanden.
Hab versucht folgendes zu schreiben:
Delphi-Quellcode:
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
var i : integer;
begin
  i := CheckListBox1.ItemIndex;
  Table2.Append;
  Table2Branchen.Value := CheckListBox1.Items[i];
  Table2BR_ID.Value := CheckListBox1.Items.IndexOf(Table2Branchen.AsString);
...
end;
bin aber dann doch nicht weiter gekommen.
Muss noch über den CheckListBox-Index auf die richtige BRA_ID kommen.
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz