Einzelnen Beitrag anzeigen

Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

Mal alle Felder anzeigen, mal nur bestimmte

  Alt 7. Nov 2003, 12:34
Hi zusammen...Folgendes:

Hab 2 Listbox und ein DBGrid

In ListboxTable stehen alle Tabellen einer DB und in ListBoxFelder alle Felder der Tabelle, die in ListBoxTable ausgewählt und im DBGrid der Inhalt der Tabelle. Wenn ich jetzt auf ein Item in ListBoxFelder klicke, springt das DBGrid zu dem ausgewählten Feld. So:

Delphi-Quellcode:
if DS.DataSet = Tab then
   DBGrid.SelectedField := Tab.FieldByName(ListBoxFelder.Items[ListBoxFelder.Itemindex]);
if DS.DataSet = Query then
  DBGrid.SelectedField := Query.FieldByName(ListBoxFelder.Items[ListBoxFelder.Itemindex]);
Unter der ListBoxFelder hab ich dann noch ne CheckBox (CheckBoxFelderVergl). Wenn die aktiviert ist kann man in ListBoxFelder mehre Felder auswählen. Wenn man welche auswählt, will ich das nur die ausgewählten im DBGrid erscheinen. Hier mal mein Versuch, der aber leider nicht klappt:

Delphi-Quellcode:
procedure TDB_Frame.ListBoxFelderClick(Sender: TObject);
var
i,j:Integer;
begin
  if CheckBoxFelderVergl.Checked = True then
  begin
    j := 0;
    for i := 0 to ListBoxFelder.Items.Count - 1 do
    begin
      if ListBoxFelder.Selected[i] = True then
      begin
        DBGrid.Columns[j].FieldName := ListBoxFelder.Items[i];
        Inc(j);
      end; // if ListBoxFelder.Selected[i] = True then
    end; // for i := 0 to ListBoxFelder.Items.Count do
  end else // if CheckBoxFelderVergl.Checked = True then
  begin
    if DS.DataSet = Tab then
      DBGrid.SelectedField := Tab.FieldByName(ListBoxFelder.Items[ListBoxFelder.Itemindex]);
    if DS.DataSet = Query then
      DBGrid.SelectedField := Query.FieldByName(ListBoxFelder.Items[ListBoxFelder.Itemindex]);
  end; // if CheckBoxFelderVergl.Checked = True then
end;
Leider passt das noch nicht so ganz. Der löscht leider nicht die vorhandenen Columns, sondern packt die neuen hinten dran. Wie kann ich die vorhandenen Colums vorher löschen? So das immer nur die angezeigt werden, die auch ausgewählt worden sind?????
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat