Delphi-PRAXiS
Seite 1 von 2  1 2      

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 TStringGrid mit (Such-)Editoren für ALLE Spalten (https://www.delphipraxis.net/144676-tstringgrid-mit-such-editoren-fuer-alle-spalten.html)

hoika 14. Dez 2009 06:13


TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Hallo #,

ich stehe gerade auf dem Schlauch (as usual ...)
Ich will eine schicke Such-/Filter-Routine in ein StringGrid einbauen.
Es soll jede Spalte als Suchkriterum benutzt werden können,
auch mehrere zusammen (ob AND oder OR ist hier egal).

Jetzt habe ich das mal gesehen, das jede Spalte oberhalb der Überschrift
noch Editoren eingeblendet hatte.

2 FixedRows
Row 0 -> Editoren
Row 1 -> Caption

Wie bekomme ich da jetzt Editoren rein ?
Die Editore-Breite soll sich an die Breite der Spalte anpassen,
dass kann ich aber auch per Hand machen.

Hat jemand ein bissel Code zur Hand für sowas ?

Danke


Heiko

Hansa 14. Dez 2009 11:01

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Zitat:

Zitat von hoika
..Jetzt habe ich das mal gesehen, das jede Spalte oberhalb der Überschrift
noch Editoren eingeblendet hatte..

Was zum Teufel ist ein "eingeblendeter Editor" ? :shock: Bei mir kann man zum sortieren die Titelzeile anklicken. Die wird dann farblich anders angezeigt und fertig.

mkinzler 14. Dez 2009 11:04

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Das Grid von DevArts kann das standardmässig

nahpets 14. Dez 2009 11:36

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Hallo,

schau Dir mal XStringGrid an.

hoika 14. Dez 2009 18:34

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Hallo,

Zitat:

eingebaut
Ich meinte, es sollte in der 1. FixedRow überall ein Editor angezeigt werden.
Der eingegebene Wert dient der Filterung (mache ich aber selber).

Zitat:

DevArt
Klar kann es das, kostet aber auch nen Haufen Kohle.
Ausserdem handelt es sich bei meinem StringGrid auch schon
um eine abgeleitete, erweiterte Variante.

Zitat:

XStringGrid
Das kann das nicht.


Heiko

alzaimar 14. Dez 2009 21:02

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Ich hab mir mal ein Panel gebastelt, das sich oberhalb eines Grids platziert. Oder in die 2.Zeile, auch egal. Auf jeden Fall hab ich das Panel mit einem Grid verknüpft und dann einfach für jede Spalte des Grids einen Editor (TEdit, TCheckbox, TDateTimePicker, TCombobox usw.) in das Panel gepackt. Beim Links/Rechts-Scrollen muss man die Positionen anpassen und bei einer Änderung der Spaltenbreite auch (geht das bei einem TStringGrid überhaupt?).

Das war's. Bei einem ENTER habe ich den Filter ausgelöst.

Nur mit AND bzw. OR hatte ich nix am Hut, aber das könnte man auch noch wuppen.

hoika 15. Dez 2009 09:42

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Hallo,

Zitat:

Beim Links/Rechts-Scrollen muss man die Positionen anpassen
jaaaaaa,
das will ich ja auch, nur wie genau ? ;(


Zitat:

und bei einer Änderung der Spaltenbreite auch (geht das bei einem TStringGrid überhaupt?).
Grid.Options goColSizing


Heiko

alzaimar 15. Dez 2009 20:41

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Hi hoika.
Leider bin ich zu müde, um das alles auszucodieren, aber es macht Spass es selbst zu machen.
Die Stichpunkte sind:
- OnTopLeftChanged (damit die Edits sich mit verschieben)
- OnColumnMoved (Vertauschen der zur Spalte korrespondierenden Edit-Felder)
- ???? (Änderungen der Spaltenbreite auf die Edit-Felder übertragen)
Letzteres geht leider nicht über einen Event, glaube ich. Nimm einen Timer, der die Spaltenbreiten überwacht und ggf. die Edits neu positioniert.

blablab 15. Dez 2009 21:01

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Statt einem Timer würde ich lieber OnMouseUp nehmen.

alzaimar 16. Dez 2009 06:00

Re: TStringGrid mit (Such-)Editoren für ALLE Spalten
 
Zitat:

Zitat von blablab
Statt einem Timer würde ich lieber OnMouseUp nehmen.

:wall: so was einfaches :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Seite 1 von 2  1 2      

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