Announcement

Collapse
No announcement yet.

Füllen einer ComboBox mit Indizes

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Füllen einer ComboBox mit Indizes

    Hallo...

    ich steh mal wieder auf dem Schlauch!

    ich möchte eine ComboBoxmit Indizes einer Tabelle füllen. Diese sollen (von mir aus onFormShoW) eingetragen werden und die Anzeigefolge dementspr. angepasst werden.

    Ich weiß nicht, ich weiß nicht...

    Wie immer, heissen Dank

    Heiko

  • #2
    Hallo Heiko

    Vielleicht hilft das.
    <PRE>
    // Vorgesetzte.Items.Add('ALLE') ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++
    With DM_PERS.T_FA Do
    Begin
    Filtered := False;
    Filter := 'FEST_ANGESTELLT = True AND EINSATZORT = ' + QuotedStr(STAO) + '';
    Filtered := True;
    // Vorgesetzte in VA_Combo löschen ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++
    First;
    While Not EOF Do
    Begin
    If (DM_PERS.T_FAH.FieldByName('FEST_ANGESTELLT').AsBo olean) AND
    (DM_PERS.T_FAH.FieldByName('KURZZEICHEN').AsString <> 'SYS') Then
    Begin
    HF_VFAMI.VA_Combo.Items.Delete(0);
    End;
    Next;
    End;
    // Vorgesetzte in VA_Combo eintragen ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++
    First;
    While Not EOF Do
    Begin
    If (DM_PERS.T_FAH.FieldByName('FEST_ANGESTELLT').AsBo olean) AND
    (DM_PERS.T_FAH.FieldByName('KURZZEICHEN').AsString <> 'SYS') Then
    Begin
    HF_VFAMI.VA_Combo.Items.Add(DM_PERS.T_FAH.FieldByN ame('KURZZEICHEN').AsString);
    End;
    Next;
    End;
    End;

    </PRE>
    Gruss
    Hanspete

    Comment


    • #3
      Hallo,

      uups! Also Hanspeter, davon verstehe ich nichts !! Ich habe mich aber auch unverständlich ausgedrückt. Nach einigen probieren bin ich auf folgende Prozedur gekommen, die mir aber noch ein Problem beschert:

      <PRE>procedure TOptionForm.FillIndexCombo(TableName: String;
      IndexComboBox: TDBComboBox;
      SortName:String);
      var
      i : integer;
      begin
      DivTbl.Close;
      DivTbl.TableName:=TableName;
      IndexComboBox.Items.Clear;
      DivTbl.IndexDefs.Update;
      for I := 0 to DivTbl.IndexDefs.Count - 1 do
      Begin
      IndexComboBox.Items.Add(DivTbl.IndexDefs.Items[i].Name);
      End;
      DivTbl.Close;
      end;</PRE>

      Diese Prozedure rufe ich ONSHOW meines Formulars auf, clicke ich die Boxen, stehen auch alle Indizes der Tabelle die ich übergebe in der Box, nur wenn ich das Formular abermals aufrufe, zeigt es mir den momentan gültigen Index nicht an?

      Noch n Tipp?

      Gruß

      Heik

      Comment


      • #4
        hallo heiko!

        Lade doch in einer Funktion oder Prozedur deine Indices in ein TStringList sl. Danach
        1.) sl.sort.
        2.) combobox.Items.assign(sl)
        3.) Bestimme den Namen deines aktuellen Index
        4.) combobox1.ItemIndex := sl.Find(aktuellerIndex)
        fertig

        Gruß
        Bernhar

        Comment

        Working...
        X