Announcement

Collapse
No announcement yet.

TreeView aktualisieren

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

  • TreeView aktualisieren

    Hallo wie kann ich ein TreeView nachdem ich Daten in die Datenbank eingetragen habe aktualisieren. Ich habe eine Procedure geschrieben die das TreeView beim FormularStart aufbaut. Wenn ich jetzt Daten über ein Formular hinzufüge sind die Änderungen erst bei einem Neustart vorhanden. Ein erneutes aufrufen der Procedure hilft nicht

    Wie geht das

    Christof

  • #2
    Hallo Christof,<br><br>
    vielleicht hast Du die Methode BeginUpdate der Items aufgerufen, aber kein<br>
    EndUpdate hinterhergeschickt. Ansonsten wüsste ich so auf die<br>
    Schnelle auch nicht, woher dieser Effekt kommen sollte.<br><br>
    MfG<br><br>
    Stefan Schreie

    Comment


    • #3
      Hi!<br>
      Bei und klappt das einwandfrei.<br>
      Bist Du denn sicher, daß das TreeVew die Änderungen in der Tabelle sieht? Vielleicht ein Problem mit dem Zugriff?<br>
      BYE BERN

      Comment


      • #4
        Ich habe jetzt nach TreeView1.Itmes.clear eine Schleife eingebaut und es funktioniert ab und zu.
        Hier ist der Code

        GetMem(zeiger, sizeof(integer)*anzahl);
        //ShowMessage ('Vor löschen');

        Query1.close;
        TreeView1.Items.Clear;
        Query1.Open;
        Cursor := crHourGlass;
        for tuwas := 1 to 1000000 do
        begin
        for n := 1 to 100 do
        begin
        //
        end;

        end;
        Cursor := crDefault;
        //ShowMessage (IntToStr(Query1.recordcount));
        while not query1.eof do begin
        Node1:= TreeView1.Items.AddChild(TreeView1.Selected, query1['Schlusselnummer']);
        Node1.ImageIndex := 0;
        zeiger^[i]:= query1['SNid'];
        node1.data := Pointer(zeiger^[i]);
        inc(i);
        node1.SelectedIndex := node1.imageindex;
        query2.close;
        Query2.Parameters[0].value := query1['SNid'];
        query2.open;
        ...
        Christo

        Comment


        • #5
          Hi!<br>
          Auch wenn man den Code etwas schlecht lesen kann:<br>
          for tuwas := 1 to 1000000 do begin for n := 1 to 100 do begin // end;<br>
          Das soll einfach nur ne kleine Pause machen oder?<br>
          Application.ProcessMessages; //geht besser und wird Dein Problem vielleicht auch beseitigen (Sieh mal in die Delphihilfe dazu!)<br>
          <br>
          query1['SNid']; ist ein Integer richtig?<br>
          node.data := pointer ( query1['SNid'] ); //zum eintragen<br>
          myInteger := integer ( node.data ); //zum auslesen<br>
          <br>
          Zeigt denn Deine showmessage (recordcount) die von Dir gewollte Anzahl an Datensätzen an? Wenns da schon nicht richtig tut kann der Rest auch nicht gehen.<br>
          Ansonsten (bis auf die Query ich verwende eine TTable) machst Du die Sache wie ich und bei mir klappts.<br>
          BYE BERN

          Comment

          Working...
          X