AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TDBComboBox: Auswahl geht verloren bei OnEditMode
Thema durchsuchen
Ansicht
Themen-Optionen

TDBComboBox: Auswahl geht verloren bei OnEditMode

Ein Thema von Gremlin · begonnen am 26. Mär 2024 · letzter Beitrag vom 27. Mär 2024
Antwort Antwort
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#1

TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 09:02
Datenbank: Egal • Version: 10.2 • Zugriff über: BDE, FireDAC
Hallo


ich habe eine simple TFDMemTable mit TDataSource und einer TDBComboBox.

Die Komponenten sind alle miteinander verbunden, die ComboBox geht auf ein Integer-Feld.
In TFDMemTable ist der Event OnBeforeEdit mit einer Abfrage verbunden, ob in den Edit-Modus gewechselt werden soll.
Die ComboBox ist im Style=csDropDownList und enthält diverse Integer-Werte in Items.

Code:
  if not(FDMemTable1.State=dsEdit) then
    if (MessageDlg('in Edit Mode schalten?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then Abort;
Ist die Datenmenge im Edit-Mode, so kann über die Combo der Wert ohne Probleme geändert werden.
Ist die Datenmenge jedoch nicht im Edit-Mode und wird versucht über die Combo einen Wert auszuwählen, so enthält nach der Auswahl und der Abfrage "in Edit Mode schalten?" der Wert der Combo wieder den Anfangswert.

Wahrscheinlich ist dieses Problem schon immer vorhanden, aber jetzt erst aufgefallen.
Irgendeine Idee??

Danke
Gruss Gremlin
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 09:59
Zitat:
Ist die Datenmenge jedoch nicht im Edit-Mode und wird versucht über die Combo einen Wert auszuwählen, so enthält nach der Auswahl und der Abfrage "in Edit Mode schalten?" der Wert der Combo wieder den Anfangswert.
So richtig versteh ich grade nicht, was hier das Problem sein soll.


Und wie geht das "von alleine" in den EditMode?

Oder rufst du selbst irgendwo ein .Edit auf?
Wenn ja, warum dann nicht davor prüfen?


z.B. AutoEdit bei der DataSource auf False setzen.

PS: Was ist mit dsInsert? Da darf auch editiert werden.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#3

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 10:19
Die Beschreibung ist etwas vage, aber ich tippe mal darauf, dass der Dialog einfach den Fokus klaut. Vielleicht hilft es schon, diesen nach der Abfrage wieder auf das Control zu setzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 11:03
AutoEdit der DataSource ist True.

Die TDBComboBox möchte die Datenmenge, durch die Auswahl eines Feldwertes im Dropdown, in den Edit-Modus schalten.

Wird dieser Vorgang im BeforeEdit der Datenmenge durch ein Abort abgebrochen, so enthält das Control den ausgewählten Wert, wird der Vorgang nicht abgebrochen, dann enthält das Control den vorherigen Wert vor der Änderung

* Wert in Control: 1 (Ursprungswert)

* Auswahl über Combo: 3 -> möchte automatisch in EditMode wechseln

- Abbruch über Abort: Wert in Control: 3
- Kein Abbruch über Abort: Wert in Control: 1 (Ursprungswert)
Gruss Gremlin
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 11:16
Danke, und welches Verhalten möchtest du haben? Du musst entschuldigen, dass wir nicht so tief im Kontext sind wie du.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 12:04
Sorry IMHO ist der Kontext aber eigentlich nicht so tief.

- Abort bei BeforeEdit, Änderungen werden verworfen
- kein Abort bei BeforeEdit, Änderungen werden übernommen

BTW: Bei normalen Edits klappts ja wie es soll..
Gruss Gremlin
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#7

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 12:42
Sorry IMHO ist der Kontext aber eigentlich nicht so tief.
Nun, da du kein Beispielprojekt bereitstellst fangen wir ja quasi auf einem leeren Blatt Papier an.

- Abort bei BeforeEdit, Änderungen werden verworfen
- kein Abort bei BeforeEdit, Änderungen werden übernommen

BTW: Bei normalen Edits klappts ja wie es soll..
Ja, wie soll es denn?

Aus deinen Ausführungen geht immer noch nicht hervor, ob die Beschreibung des Verhaltens den Soll- oder Ist-Zustand wiedergibt. Der Hinweis auf die normalen Edits bringt vielleicht mehr Informationen, erfordert aber erstmal selbst nachzuprüfen, wie die sich nun genau verhalten um den Unterschied zur TDBComboBox herauszubekommen. Das ist sicher nicht nur für mich mehr Aufwand als ich bereit bin da hineinzustecken.

Eine gute Fehlerbeschreibung enthält neben den erforderlichen Schritten auch eine Beschreibung dessen was man erwartet (exp) und dessen was man aktuell bekommt (act). Damit wird wiederholtes Nachfragen in der Regel überflüssig.

Solange wir dein Problem nicht verstehen, wirst du vermutlich nur eher unbrauchbare Antworten bekommen - wenn überhaupt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 26. Mär 2024, 15:43
Ist die Datenmenge jedoch nicht im Edit-Mode und wird versucht über die Combo einen Wert auszuwählen, so enthält nach der Auswahl und der Abfrage "in Edit Mode schalten?" der Wert der Combo wieder den Anfangswert.
Aber wenn man "Nein" wählt, dann steht in der Combo der ausgewählte Wert...

(genau habe ichs nicht mehr auf dem Schirm, aber ich glaube, das war einer der Gründe, weswegen ich seit 25+ Jahren einen Bogen um "AutoEdit" mache)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#9

AW: TDBComboBox: Auswahl geht verloren bei OnEditMode

  Alt 27. Mär 2024, 14:52
Arbeitet denn Firedac überhaupt mit Abort?
Ich meine , das ist ja immerhin eine stille Exception. Ich könnte mir vorstellen, dass Firedac bessere Methoden anbietet um diesen Vorgang abzubrechen.

geht sowas ?
Delphi-Quellcode:
if not(FDMemTable1.State=dsEdit) then
    if (MessageDlg('in Edit Mode schalten?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then
    Begin
      Dataset.cancel;//Datensatz in den Ursprungs zustand versetzen
      Abort;
    end;
oder sowas
Delphi-Quellcode:
if not(FDMemTable1.State=dsEdit) then
    if (MessageDlg('in Edit Mode schalten?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then
    Begin
      TThread.ForceQueue(TThread.Current,
        Procedure
        Begin
          Dataset.cancel;
          Dataset.editmode := false;// Weiß nicht ob das muss...
        end;
      );
      Exit;
    end;
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (27. Mär 2024 um 15:14 Uhr)
  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 21:36 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