Announcement

Collapse
No announcement yet.

Datasource zur Laufzeit

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

  • Datasource zur Laufzeit

    Hallo,

    wie kann ich die bei einem DBGrid zur Laufzeit die Datasource ändern ?

    Micha

  • #2
    Mit DBGrid1.DataSource := AndereDataSource;

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      ich glaub ich habe meine Frage falsch gestellt.
      Ich will den Wechsel der Datasource über eine ComboBox steuern.

      DBGrid1.Datasource := ComboBox1.Text;

      bringt mir die Fehlermeldung inkompatible Typen, da weiss ich nicht
      weiter. Vielleicht noch ne Idee ?

      Mich

      Comment


      • #4
        Hi Micha,

        TDBGrid.DataSource ist vom Typ TDataSource und deshalb kannst Du nicht einfach einen String zuweisen. Für Dein Vorhaben mußt Du im Programm entsprechend Vorsorge treffen:

        .<br>
        .<br>
        .<br>
        if ComboBox1.Text = 'Erste DataSource' then DBGrid1.DataSource := DataSource1<br>
        else if ComboBox1.Text = 'Zweite DataSource' then DBGrid1.DataSource := DataSource2 ... etc<br>
        <br>
        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Hallo Falk,

          das wars. Danke.

          Mich

          Comment


          • #6
            Hallo,

            kann man auch mit einer Scheife lösen, dadurch wird das Ganze unempfindlicher gegen spätere Änderungen:

            <pre>
            var i : integer;
            begin
            for i := 0 to ComponentCount -1 do
            if (components[i].name = comobox1.text) and (components[i] is TDatasource) then
            dbedit1.Datasource := components[i] as TDataSource;
            ...
            end;
            <pre>

            oder noch einfacher:

            <pre>
            dbedit1.Datasource := FindComponent(comobox1.text) as TDatasource;
            </pre>

            Gruß Ul

            Comment

            Working...
            X