Announcement

Collapse
No announcement yet.

TDBEdit und TLabel zur Laufzeit erstellen

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

  • TDBEdit und TLabel zur Laufzeit erstellen

    hi leute....

    ich möchte zur laufzeit meines programms DBEditfelder erstellen...

    zur Situation:

    in ListBox1 werden X einträge gespeichert...
    (z.B.:Zeile0 = Vorname, Zeile1 = Nachname, u.s.w)

    wenn ich anschließend auf einen button klicke sollen dementsprechend X DBEditfelder und Labelfelder erstellt werden, um einen Datenbankeintrag machen zu können und die Labelfelder sollen die die Bezeichnungen aus der Listbox bekommen...

    Diese sollen dazu auch untereinander dargestellt werden...

    ich wäre wie immer sehr dankbar für jede hilfe...

    mfg
    ice

  • #2
    Hi,
    .
    ich habe mal GExperts zur Erstellung eines DBEdits zur Hilfe genommen, da kannst Du ein beliebiges Control markieren und als "Component to Text" kopieren:
    <code>
    var
    DBEdit1: TDBEdit;
    <br>
    DBEdit1 := TDBEdit.Create(Self);
    with DBEdit1 do
    begin
    Name := 'DBEdit1';
    Parent := Self;
    Left := 285;
    Top := 15;
    Width := 121;
    Height := 21;
    TabOrder := 3;
    DataSource := irgendeineDS;
    DataField := irgendeinField;
    end;
    </code>
    So kannst Du dann auch alle weiteren Eigenschaften setzen

    Comment


    • #3
      vielen dank für deine antwort...

      ich habe alles gut umsetzten können...bis auf eine kleinigkeit...
      <pre>
      E:=TEdit.Create(self);
      with E do
      begin
      Name:='Edit1';
      Parent:=self;
      Left:=150;
      Top:=10;
      Width:=250;
      Height:=25;
      Text:='';
      end;
      </pre>
      wie kann ich jetzt auf das ereignis <b>OnClick</b> zugreifen?

      mfg
      ic

      Comment


      • #4
        schreibe eine Procedur

        z.B procedure TForm1.meinclick(Sender:TObject);
        begin
        // hier code einfügen
        end;

        und beim Erzeugen deines Objektes

        E.onclick := meinclick;

        siehe auch TNotifyEvent

        Gruß Andrea

        Comment


        • #5
          hab ich gemacht...
          <pre>
          procedure TForm1.Finden(Sender: TObject);
          begin
          with Form1.Query1 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('select * from daten where '+(FindComponent('ComboBox1')as TComboBox).Text+' like " '+(FindComponent('Edit1')as TEdit).Text+'%";');
          Open;
          end;
          end;
          </pre>
          nun habe ich folgendes problem:
          <br><br>
          ich habe <b>ComboBox1</b> und <b>Edit1</b> dynamisch erstellt.
          <br><br>
          in die items der combobox lese ich die spalten der datenbank ein.
          <br><br>
          <b>sinn dieser übung:</b>
          <br>
          wenn ich in der combobox einen eintrag(spaltenname aus der datenbank) auswähle und im editfeld etwas eingebe, soll das query die daten anzeigen, welche dem suchbegriff entsprechen...
          <br><br>
          <b>Tatsache ist:</b>
          <br>
          er meckert mich an und meint, das <b>"like"</b> ein ungültiges schlüsselword ist...
          <br>
          Das heißt, dass die werte aus der combobox nicht übergeben werden...und die aus dem editfeld auch nich...
          <br><br>
          <b>der querystring sieht nach auswahl und eingabe so aus:</b>
          <pre>
          select * from daten where like "%";
          </pre>
          <b>und so sollte er eigentlich aussehen:</b>
          <pre>
          select * from daten where Name like "a%";
          <b><i>(Name = Datenbankspalte =>Auswahl aus Combobox1)
          (a% = Suchbegriff => Eingabe in Edit1)</b></i>
          </pre>
          wäre toll, wenn da jemand rat wüßte...ich danke schon jetzt ;-)

          mfg
          ic

          Comment

          Working...
          X