Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DBTreeView-Knoten nach Datensatzänderung anzeigen (https://www.delphipraxis.net/85615-dbtreeview-knoten-nach-datensatzaenderung-anzeigen.html)

Andreas H. 2. Feb 2007 10:10


DBTreeView-Knoten nach Datensatzänderung anzeigen
 
Hallo,

ich habe eine DBTreeView, deren Datensatz sich durch eine Suchoperation ändert. Wie kann ich den nun aktuellen Datensatz zur Anzeige bringen?

Ich habe schon alles Mögliche probiert, leider ohne Erfolg.

Hier die Suchroutine:
Delphi-Quellcode:
procedure TTagsChildForm.FindDialogFind(Sender: TObject);
var
  s1,s2:string;
begin
  try
    DSTags.DataSet.DisableControls;
    DSDocTags.DataSet.DisableControls;
    DSFolderTags.DataSet.DisableControls;
    repeat
      if (frDown in FindDialog.Options) then
        DSTags.DataSet.Next
      else
        DSTags.DataSet.Prior;

      if frMatchCase in FindDialog.Options then
      begin
        // Vergleich mit MatchCase
        s1:=DSTags.DataSet.FieldByName('Name').asString;
        S2:=FindDialog.FindText;
      end
      else
      begin
        // Vergleich ohne MatchCase
        s1:=AnsiUpperCase(DSTags.DataSet.FieldByName('Name').asString);
        s2:=AnsiUpperCase(FindDialog.FindText);
      end;
    until (DSTags.DataSet.Bof AND NOT (frDown in FindDialog.Options))
                  OR (DSTags.DataSet.Eof AND (frDown in FindDialog.Options))
                  OR (AnsiPos(s2,s1)>0);
  finally
    DSTags.DataSet.EnableControls;
    TVTags.Items[TVTags.SelectedIndex].expand(false);
    DSDocTags.DataSet.EnableControls;
    DSFolderTags.DataSet.EnableControls;
    UpdateDocTabs(DSTags.DataSet);
  end;
end;
Die Treeview hängt an DSTags.

Ich benutze die ZEOS-Tabellen und die TjvDBTreeView. Die Tabelle ist gefiltert (Filtered:=true, OnFilterRecord setzt entsprechend Accept). Die Treeview zeigt nur einen bestimmten Zweig an (eingestellt über StartMasterValue - dies entspricht der Filterbedingung).
Eine Idee wäre die Suche in den Items der TreeView, das hab ich aber auch nicht hinbekommen, da die Funktionen wie GetNextNode oder so nicht vorhanden sind.


Ich bin überrascht, dass ich dieses Thema über die Forensuche nicht gefunden habe. Kann jemand helfen?

Gruß Andreas

Andreas H. 3. Feb 2007 18:31

Re: DBTreeView-Knoten nach Datensatzänderung anzeigen
 
Hi,

kann denn keiner helfen?

:cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz