[gelöst] TDBGrid Column mit Ellipsis/Button
-
- Beiträge: 811
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
[gelöst] TDBGrid Column mit Ellipsis/Button
Hi,
in einer DBGrid-Column wird eine kombinierte Information angezeigt (sagen wir mal ein Namenskonstrukt mit Titel, Vornamen, Nachnamen etc) das keinesfalls editierbar sein soll.
Jetzt sollen aber zusatzinformationen zu dem Namen angezeigt werden (da gibt es mehrere pro Zeile).
Eine Variante wäre einen Button in der Spalte anzeigen zu lassen (ButtonStyle:= cbsEllipsis). damit ist wäre klar welches Feld ausgesucht wurde.
Leider bekomme ich das nicht so hin dass der Ellipsis Button auch angezeigt wird wenn das Feld bzw die Zeile ReadOnly ist. An sich verständlich weil es ja ein "Editor" ist und wnn es nix zu editieren gibt wird der Button auch nicht angezeigt.
Irgend eine Idee wie das trotzdem geht oder ein anderer Lösungsansatz ?
THX
in einer DBGrid-Column wird eine kombinierte Information angezeigt (sagen wir mal ein Namenskonstrukt mit Titel, Vornamen, Nachnamen etc) das keinesfalls editierbar sein soll.
Jetzt sollen aber zusatzinformationen zu dem Namen angezeigt werden (da gibt es mehrere pro Zeile).
Eine Variante wäre einen Button in der Spalte anzeigen zu lassen (ButtonStyle:= cbsEllipsis). damit ist wäre klar welches Feld ausgesucht wurde.
Leider bekomme ich das nicht so hin dass der Ellipsis Button auch angezeigt wird wenn das Feld bzw die Zeile ReadOnly ist. An sich verständlich weil es ja ein "Editor" ist und wnn es nix zu editieren gibt wird der Button auch nicht angezeigt.
Irgend eine Idee wie das trotzdem geht oder ein anderer Lösungsansatz ?
THX
Zuletzt geändert von charlytango am Di 20. Jun 2023, 09:19, insgesamt 2-mal geändert.
Re: TDBGrid Column mit Ellipsis
Was beim Klicken des Ellipsis-Buttons passieren soll, steht in deinem eigenen Code. Normalerweise öffnet da ein von dir geschriebenes Dialogfenster, in dem die zu bearbeitenden Felder enthalten sind. Zeige dort doch einfach die unveränderlichen Felder nur als Labels oder als Read-Only-Edits an, die veränderbaren dagegen als normal Edits. Es ist nicht verboten, in dem Dialog Informationen aus anderen Spalten zu verwenden.
-
- Beiträge: 811
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
-
- Beiträge: 811
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: TDBGrid Column mit Ellipsis
@wp_xyz: Hab mir dein Grid-Coloring ausgeborgt und dort in der ersten Spalte einen EllipsisButton eingestellt und dann die Spalte auf ReadOnly gesetzt.
Der Ellipsis-Button wird nicht mehr angezeigt (offenbar weil das Feld nicht mehr in den Edit-Modus gehen kann)
Ich suche eine Möglichkeit in der ich Zeile und Spalte eines Feldes (eben durch einfaches Drücken eines Buttons durch den User) identifizieren kann.
Meinetwegen lasse ich das Feld editierbar -- aber wie verhindere ich dass der User es wirklich ändern kann bzw ich den alten Wert zurücksetze?
Der Ellipsis-Button wird nicht mehr angezeigt (offenbar weil das Feld nicht mehr in den Edit-Modus gehen kann)
Ich suche eine Möglichkeit in der ich Zeile und Spalte eines Feldes (eben durch einfaches Drücken eines Buttons durch den User) identifizieren kann.
Meinetwegen lasse ich das Feld editierbar -- aber wie verhindere ich dass der User es wirklich ändern kann bzw ich den alten Wert zurücksetze?
- Dateianhänge
-
project1.zip
- (3.48 KiB) 25-mal heruntergeladen
Re: TDBGrid Column mit Ellipsis
OK - ich hab' den ButtonEditor mit dem EllipsisEditor verwechselt. Während man beim EllipsisEditor immer noch normal in der Zelle editieren kann, ist das beim ButtonEditor nur noch mit Hilfe des aufgerufenen Dialogs möglich. Also: die Spalte NICHT auf read-only setzen, und den ButtonStyle auf cbsButton statt auf cbsEllipsis.
Code: Alles auswählen
DBGrid1.Columns.Clear;
with TColumn(DBGrid1.Columns.Add) do
begin
fieldname := 'Name';
Title.Caption := 'Name';
Width:=230;
ButtonStyle:= cbsButton; //cbsEllipsis;
//ReadOnly:=true;
end;
-
- Beiträge: 811
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: TDBGrid Column mit Ellipsis
Danke -- in deinem Beispiel klappt das -- in meinem Grid nicht -- da hab ich noch irgendwas in meiner Panik falsch eingestellt.
Etwas sportlichen Ehrgeiz stecke ich da noch rein, sonst kommt der neu ggg
Etwas sportlichen Ehrgeiz stecke ich da noch rein, sonst kommt der neu ggg
- af0815
- Lazarusforum e. V.
- Beiträge: 6107
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: TDBGrid Column mit Ellipsis
Die lfm ist lesbarer Text, daher kann man sich aus den beiden lfm's jeweils die Definition für das Grid herauskopieren und vergleichen. Da in der lfm nur die Abweichung zum Standard gespeichert ist, ist das meistens nicht soviel Text.charlytango hat geschrieben: ↑Mo 19. Jun 2023, 23:24Danke -- in deinem Beispiel klappt das -- in meinem Grid nicht -- da hab ich noch irgendwas in meiner Panik falsch eingestellt.
Etwas sportlichen Ehrgeiz stecke ich da noch rein, sonst kommt der neu ggg
Nur so als Anmerkung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 811
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: [gelöst] TDBGrid Column mit Ellipsis
Danke für die Anregung -- oft sieht man den Wald vor lauter Bäumen nicht.
Diesmal wars leichter. Es musste nur die Editierbarkeit der Felder wieder eingeschaltet werden
klappt soweit, danke.Jetzt muss ich nur noch raus bekommen welcher meiner 5 Buttons nun gedrückt wurde 
Diesmal wars leichter. Es musste nur die Editierbarkeit der Felder wieder eingeschaltet werden
Code: Alles auswählen
DBGrid1.dgEditing:=true;
DBGrid1.dgRowSelect:=false;

- af0815
- Lazarusforum e. V.
- Beiträge: 6107
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: [gelöst] TDBGrid Column mit Ellipsis
(Fast) Jedes in Lazarus vorhandene Objekt hat die Eigenschaft Tag. Die nutze ich gerne für die Unterscheidung (, oder den Sendernamen).charlytango hat geschrieben: ↑Di 20. Jun 2023, 06:56klappt soweit, danke.Jetzt muss ich nur noch raus bekommen welcher meiner 5 Buttons nun gedrückt wurde![]()
Auch nur als Anmerkung um den Wald hinter den Bäumen vorzulocken.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).