AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi DevExpress: Cell Focus verhindern unter bestimmten Bedingungen
Thema durchsuchen
Ansicht
Themen-Optionen

DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

Ein Thema von haentschman · begonnen am 4. Jun 2019 · letzter Beitrag vom 4. Jun 2019
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 09:28
Moin...
Persönlich mag ich die ImGrid Editiererei nicht. Da stößt man auf Probleme die man sich nicht vorstellen kann. Wenn man nur den Standard macht mit alles "offen", dann ist das unproblematisch. Dann kommen die quänglichen User...Ich will ein Eis!

Vorgabe:
* Grid
* Positionen Grid mit "Detaildaten"
* Zugriff auf das Objekt in der Objektliste des Records für das Lesen der Properies

* Grid hat eine Spalte ("Prüfung erledigt") editierbar. (3) Dieses Flag ist die Vorraussetzung für das "Erzeugen" der eigentlichen Rechnung. (2)
* ist die Rechnung "erzeugt (gespeichert) wird "Rechnung gespeichert" eingetragen. (1)

Was soll passieren:
* die eine focusierte Zelle ("Prüfung erledigt") der Spalte, mit Flag "gespeichert", soll nicht editierbar sein.
* das Positionen Grid soll in Abhängigkeit des Flags ("Prüfung erledigt") editierbar sein

Was passiert:
Wenn ich dem Record, über das Flag, den Focus entziehe, dann ist die Funktion wie ich sie möchte gegeben. Aber die Selection ist auch weg. Der Indikator hat keinen Pfeil und der Record ist nicht markiert. Beim Klick auf das Grid werden die Positionen anstandslos geladen/aktualisiert.
Probiert habe ich nicht das eigentliche Editieren zu verhindern (Validate).

Soll:
Ich möchte eine Markierung auf dem aktuellen DS sehen...vorzugsweise mit Pfeil (die User sind das gewohnt) und ein Selection Rahmen.


Danke für Infos...

PS: Die Grids sind keine Grids mit Dataset Anbindung! An den Grids hängen generische Objektlisten.

Hinweis: Ich habe schon die mir bekannten üblichen Verdächtigen Events (FocusRecord etc.) durch.
Hinweis2: CanSelectRecord wird nicht ausgeführt! MultiSelect = False?

Nachtrag: MultiSelect = False ist der Übeltäter für das nicht Ausführen von CanSelectRecord
Miniaturansicht angehängter Grafiken
grid1.png   gridpositionen.png  

Geändert von haentschman ( 4. Jun 2019 um 09:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 10:09
Ich hab jetzt dein Szenario nicht wirklich verstanden, aber reicht es nicht, für die relevante Zelle in einem TableView.OnEditing-Handler AAllow auf False zu setzen?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 11:08
Zitat:
aber reicht es nicht, für die relevante Zelle in einem TableView.OnEditing-Handler AAllow auf False zu setzen
Das ist richtig...
Ich wollte aber einen optischen Unterschied haben, um zu erkennen warum das nicht editierbar ist. Mit Allow := False klickst du und kannst nicht erkennen, warum die CheckBox sich nicht ändert. ...weil der Hintergrund der Checkbox Zelle immer noch im "EditModus" steht (Column.Focus erlaubt).

Geändert von haentschman ( 4. Jun 2019 um 11:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 11:10
Zitat:
aber reicht es nicht, für die relevante Zelle in einem TableView.OnEditing-Handler AAllow auf False zu setzen
Das ist richtig...
Ich wollte aber einen optischen Unterschied haben, um zu erkennen warum das nicht editierbar ist. Mit Allow := False klickst du und kannst nicht erkennen, warum die CheckBox sich nicht ändert.
Dann weist du in einem OnGetContentStyle-Handler einen passenden cxStyle zu.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 11:12
Zitat:
Dann weist du in einem OnGetContentStyle-Handler einen passenden cxStyle zu.
...da bin ich grad dabei.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#6

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 11:16
Wenn's richtig disabled ausschauen soll, sollte das helfen:
https://www.devexpress.com/Support/C...sable-checkbox
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: DevExpress: Cell Focus verhindern unter bestimmten Bedingungen

  Alt 4. Jun 2019, 11:18
Zitat:
Wenn's richtig disabled ausschauen soll
...gute Idee.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
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