Announcement

Collapse
No announcement yet.

RadioGroup mit TIntegerField verknüpfen

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

  • RadioGroup mit TIntegerField verknüpfen

    Es kommt doch wohl häufiger vor, dass Integer/Smallint-Werte in einer Tabelle mit bestimmten Inhalten verbunden werden:<BR>
    0 = Hund<BR>
    1 = Katze usw.

    Das datensensitive Feld soll den Klartext anzeigen und zur Auswahl anbieten, das Datenfeld den Wert speichern. Ich dachte, das einfachste wäre eine direkte Verbindung RadioGroup1.ItemIndex <=> IntField.AsInteger. Aber die Delphi-TDBRadioGroup speichert den gesamten Text.

    So kann man das natürlich immer lösen:<BR>
    AfterScroll => ItemIndex setzen<BR>
    BeforePost => ItemIndex übernehmen

    Aber es sollte doch eine entsprechende DB-Komponente geben, die das automatisch macht. Aber so etwas habe ich nicht gefunden (Suche im Forum nach RadioGroup + db; RX-Tools; Interest; mehrere Bücher). Es gehört wohl zu den einfacheren Übungen, eine solche Komponente zu entwickeln; aber sollte dies tatsächlich noch niemand gemacht haben?!

    Bitte melden, wo ich eine solche TXDBRadioGroup finden kann. Danke!

  • #2
    Hallo Jürgen,

    die Komponente TDBRadioGroup hat nach meiner Meinung alles was man braucht. Die Klartexte werden wie gewohnt in der Eigenschaft "Items" der Komponente abgelegt. Die zu speichernden Werte jedoch müssen unter der Eigenschaft "Values" als String unter dem entsprechenden Index abelegt werden.

    Beispiel:

    <PRE>
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    with DBRadioGroup1 do
    begin
    Items.Add('Hund');
    Items.Add('Katze');
    Items.Add('Maus');

    Values.Add('0');
    Values.Add('1');
    Values.Add('2');
    end;
    end;
    </PRE&gt

    Comment

    Working...
    X