![]() |
Filter für StringGrid richtig realisieren?
Hallo,
also ich möchte für ein StringGrid einen Filter anwenden. Weiß aber nicht wie man das am besten macht, habe aber zwei Idee, sagt mir bitte welche von diesen die beste ist, oder ob es eine noch bessere gibt, danke! 1. Idee: Ich lade die Daten erstmals in eine globale Stringlist und übergebe sie dem Filter entsprechen an das StringGrid. Wenn ich dann die Daten im StringGrid bearbeite oder lösche muss ich diese auch an die Stringlist senden, um die Liste aktuell zu halten. 2. Idee: Ich lade alle Daten gleich in das StringGrid und falls der Filter an ist, kopiere ich die Daten in eine Stringlist und filtere das StringGrid. Wenn ich im StringGrid was bearbeite oder lösche, muss ich zuvor den Filter ausschalten, das StringGrid komplett aus der Stringlist wiederherstellen, die Daten bearbeiten und wieder das ganze StringGrig in die Stringliste kopieren und den Filter einschalten. Wow, hoffe hab mich verständig ausgedruckt. |
AW: Filter für StringGrid richtig realisieren?
??? ne nicht so richtig verständlich ???
Willst du eine Filterung ähnlich wie bei MS-Excel erzielen? Gib doch mal ein Beispiel. Gruß David |
AW: Filter für StringGrid richtig realisieren?
Ja man gibt z.B. im Filter das Wort "männlich" und es werden nur Daten von Männern angezeigt.
|
AW: Filter für StringGrid richtig realisieren?
Hallo,
ganz schön kompliziert ;) Merke dir per Grid.Objects, zu welchem Eintrag eine Zeile gehört (z.B. DBId). Das Filtern übernimmt deine (schon vorhandene) FillGrid beim Eintragen. Heiko |
AW: Filter für StringGrid richtig realisieren?
Man könnte mit einem Memory-Dataset und einen DBGrid arbeiten
|
AW: Filter für StringGrid richtig realisieren?
Ich habe mir ein TFilterGrid-Komponente erstellt. Da gehe ich wie folgt vor:
Filter an: Datensätze, die nicht der Filterbedingung entsprechen, werden in ein temporäres StringGrid verschoben. Filter aus: Datensätze aus dem temporären StringGrid werden wieder angehangen und die Tabelle neu sortiert. Das temporäre Grid wird freigegegben. Gruß Klaus |
AW: Filter für StringGrid richtig realisieren?
Also falls du das AdvStringGrid kannst du ganz einfach mit AdvStringGrid1.HideRow(integer), AdvStringGrid1.UnHideRow(integer) arbeiten und deinen "Filter" kannst du mit AdvStringGrid1.Cols[integer] füllen.
Wenn du allerdings nur das delphieigene StringGrid hast kannst du als nicht so elegante Lösung RowHeights[integer] := 0 setzten, aber da "sieht man" die versteckten Zeilen leider noch. Sonst kommst du um eine Struktur die alle Daten hält nicht herum, eine DB oder ein zweites Grid, oder auch eine Stringliste mit angehängten Objekten. |
AW: Filter für StringGrid richtig realisieren?
Zitat:
|
AW: Filter für StringGrid richtig realisieren?
Zitat:
Code:
RowHeights[integer] := -1
|
AW: Filter für StringGrid richtig realisieren?
Da verschwinden die Gitterlinien leider ganz, sieht noch bescheidener aus, es sei denn du hast erst garkeine.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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