AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

Ein Thema von Ancaron · begonnen am 22. Jun 2021 · letzter Beitrag vom 7. Dez 2023
Antwort Antwort
Ancaron

Registriert seit: 24. Nov 2007
6 Beiträge
 
#1

Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

  Alt 22. Jun 2021, 10:49
Hallo,
Bei der aktuellen Delphi Version 10.4.2 und der JVCL tritt bei mir momentan ein seltsames Problem auf.
Versuche ich, die Editcontrol property zu benutzen, um das Bearbeiten in einem JvDBUltimGrid mit Hilfe eines DBEdits zu ermöglichen, gibt es Probleme beim aktivieren des Edits per Maus.
Stehe ich auf der aktuellen Zelle und gehe mit "Enter" oder einer beliebigen Taste in den Editmodus ist alles OK. Versuche ich allerdings per Mausklick den Editmodus zu aktivieren, was in früheren Delphi Versionen immer funktioniert hat, so wird das DBEdit kurz in den Focus genommen, und es ist editierbar.
Sobald allerdings die Maus losgelassen wird (meiner Fehlersuche nach sogar nach dem MouseUP erst), springt das Grid wieder aus dem Editmodus heraus und die Zelle ist wieder nur fokusiert, aber der Editor wird nicht angezeigt.

Anbei ein kleines Beispiel mit dem Verhalten ohne Editcontrol in dem oberen Grid und mit Editcontrol im unteren. Eigentlich sollten sich doch beide gleich verhalten, oder?

Beispiel unter : https://github.com/Ancaron/JVCL_DBGRID_EDITCONTROLS
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
50 Beiträge
 
#2

AW: Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

  Alt 5. Dez 2023, 10:30
ich bin gerade über Deinen Beitrag gestolpert...

ich habe aktuell gerade das gleiche Problem - aber mit Delphi 7 (ich bin mir aber sicher, dass das schon funktioniert hatte)!
Ich habe nur bei einer Spalte/Field ein EditControl gesetzt - die anderen stehen auf "Standard".
Sobald ich in die entsprechende Grid-Spalte mit der Maus klicke, wird an dieser Stelle das EditControl (ein TDBMemo) angezeigt - aber nur so lange, wie ich den Mausbutton gedrückt halte;
sobald ich die Taste loslasse, schließt sich das EditControl wieder.

Komischerweise kann ich aktuell auch nicht per TAB-Taste innerhalb einer Zeile von Spalten-Edit zu Spalten-Edit springen - bei einem Tab schließt sich auch immer die Editierung der letzten Spalte, aber die neue öffnet sich nicht...

Hast Du damals die Ursache / eine Lösung für das Problem gefunden?

Ich vermute, dass es entweder eine Einstellung am TJvDBGrid ist oder in einem der Event-Methoden etwas "schädliches" gemacht wird...
  Mit Zitat antworten Zitat
Ancaron

Registriert seit: 24. Nov 2007
6 Beiträge
 
#3

AW: Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

  Alt 6. Dez 2023, 20:49
Sorry für die späte Antwort, bewege mich nicht jeden Tag im Forum.
Ich hatte damals einen Fix für das Verhalten in die JVDbgrid.pas eingebaut innerhalb der

Code:
procedure TJvDBGrid.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
Das Ganze gibt es natürlich ohne Gewähr und Anspruch auf Richtigkeit, behob aber so weit ich weiß, bis heute mein Problem.

Hier mal die von mir geänderten Zeilen mit dem herumliegenden Code

Code:
if (Button = mbLeft) and (FGridState = gsColSizing) then
  begin
    ALeftCol := LeftCol;
    inherited MouseUp(Button, Shift, X, Y);
    if (dgRowSelect in Options) then
      LeftCol := ALeftCol;
    if Assigned(OnColumnResized) then
      OnColumnResized(Self, FSizingIndex + Byte(not (dgIndicator in Options)) - 1,
        ColWidths[FSizingIndex]);
  end
  else
  begin
    inherited MouseUp(Button, Shift, X, Y);
    // JM 12.08.2021
    // Nur bei dgRowSelect das HSCROLL absetzen, da ansonsten das aktive EditControl ein Exit-Ereigniss bekommt,
    // und direkt wieder verschwindet, wenn man das Grid mit der Maus in den EditModus versetzt.
    if (dgRowSelect in Options) then
    begin // JM 12.08.2021 ende
      OriginalScrollInfo.cbSize := SizeOf(OriginalScrollInfo);
      OriginalScrollInfo.fMask := SIF_POS;
      // Store scrollbar position
      GetScrollInfo(Handle, SB_HORZ, OriginalScrollInfo); //
      LockWindowUpdate(Handle);
      try
        Perform(WM_HSCROLL, MakeWParam(SB_THUMBPOSITION, OriginalScrollInfo.nPos), 0); //Repos
      finally
        LockWindowUpdate(0);
      end;
    end; // JM 12.08.2021
  end;
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
50 Beiträge
 
#4

AW: Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

  Alt 7. Dez 2023, 08:17
Sorry für die späte Antwort, bewege mich nicht jeden Tag im Forum.
Also die Frage habe ich am 05.12. gestellt, Deine Antwort kam am 06.12. - also viel schneller geht's eigentlich nicht

Ich hatte damals einen Fix für das Verhalten in die JVDbgrid.pas eingebaut
Den habe ich jetzt (ein wenig angepasst an die aktuelle Version) auch bei mir eingebaut - funktioniert auch bei mir

So sieht's bei mir aus:
Delphi-Quellcode:
    if ( dgRowSelect in Options ) then begin //ADDED
    OriginalScrollInfo.cbSize := SizeOf(OriginalScrollInfo);
    OriginalScrollInfo.fMask := SIF_POS;
    // Store scrollbar position
    GetScrollInfo(Handle, SB_HORZ, OriginalScrollInfo); //
    end; //ADDED
    LockWindowUpdate(Handle);
    try
      inherited MouseUp(Button, Shift, X, Y);
      if ( dgRowSelect in Options ) then begin //ADDED
      Perform(WM_HSCROLL, MakeWParam(SB_THUMBPOSITION, OriginalScrollInfo.nPos), 0); //Repos
      end; //ADDED
    finally
      LockWindowUpdate(0);
    end;
Das sollte man m.E. eigentlich als Bugfix / Code-Änderung bei JVCL selber einkippen, oder nicht?
  Mit Zitat antworten Zitat
Ancaron

Registriert seit: 24. Nov 2007
6 Beiträge
 
#5

AW: Problem bei Editcontrols von JvDBGrid / JvDBUltimGrid

  Alt 7. Dez 2023, 08:54
Bin in dieser Geschichte nicht so aktiv. Wenn du weißt wie, gerne machen von mir aus
  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 05:01 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