Phänomen in XbpBrowse

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Phänomen in XbpBrowse

Beitrag von Jan »

Gerade hat ein Mitarbeiter meines Kunden mir etwas interessantes gezeigt. In dem Programm gibt es einen XbpBrowse und diverse disabelte XBParts. In :itemSelected() steht drin, das dann der betreffende Datensatz mit DbRLock() gesperrt wird, die anderen XBParts werden enabled, und in verschiedenen XBParts die einzelnen Datenbankwerte bearbeitet werden können. Klickt der Mitarbeiter nun nach dem Bearbeiten wieder auf den Browse, werden wieder alle anderen XBParts disabled, und der Fokus geht auf den Browse. So weit so gut.

Klickt der Mitarbeiter aber beim Zurückspringen nicht auf einen Satz im Browse sondern auf den Schieber vertikalen Laufleiste des Browses, dann kommt der Laufzeitfehler "Datei oder Datensatz muß für Operation gesperrt sein", Auslöser ist der vorher aktive XBPart (ein XbpMle). Das passiert auch nur beim Klick auf den Schieber, ein Klick auf die Laufleiste selber ist ohne negative Nebenwirkungen.

Kann mir jemand sagen, woher das kommt?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Phänomen in XbpBrowse

Beitrag von AUGE_OHR »

hi,

reden wir hier vom "vertikalen" Scrollbar ? hat das XbpMLE einen Datalink zum Browse ?

mit dem "Schieber" wird ja ein XBPSB_SLIDERTRACK Event ausgelöst der durch XBPSB_ENDTRACK beendet wird.
Damit bewegst du den Record Pointer und du verlierst den "Lock".

p.s. ich würde einen "normalen" Pushbutton zum "saven" benutzen und den "disable" Kram in ein VALID packen.
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Phänomen in XbpBrowse

Beitrag von Jan »

Hallo Jimmy,

nein, der XbpMle wird über den oBrowse:stableForce synchronisiert.

Und ja, wie ich schrieb, der vertikale.

Und nein, es ist nicht die Satzbewegung. Denn ich kann auf egal welchen Satz im Browse klicken oder auf egal welchen Bereich der Scrollbar - kein Problem. Nur der Slider selber macht Zicken

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Phänomen in XbpBrowse

Beitrag von Tom »

Ich denke, Du wirst bei dieser Konstruktion den Callback "Scroll" des Scrollbalkens überladen müssen - und ihn damit dazu bringen, nichts zu tun, wenn gerade ein Datensatz bearbeitet wird und deshalb gesperrt ist und nicht verlassen werden darf. Sonst wird nämlich nach der Navigation durch den Scrollbalken das KillInputFocus für die XbParts ausgelöst, die dann versuchen, ihre Daten in Datensätze zu schreiben, die nicht mehr aktuell sind und erst gesperrt werden müssten, um (falsche!) Daten in sie zu schreiben. Häng doch einfach mal ein bisschen Debugcode in das fragliche MLE und lass Dir zeigen, in welchen Datensatz es schreiben will. Du wirst sehen, dass es der falsche ist.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Phänomen in XbpBrowse

Beitrag von Jan »

Hallo Tom,

werd ich mal versuchen. Aber dennoch irritiert mich, das der Fehler nur beim Slider auftritt. Nicht der Rest der Scrollbar, nicht der Datenbereich, nix.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Phänomen in XbpBrowse

Beitrag von AUGE_OHR »

Jan hat geschrieben:... das der Fehler nur beim Slider auftritt.
was ich dir mit XBPSB_SLIDERTRACK / XBPSB_ENDTRACK versucht habe zu erklären.

wenn du den Slider betätigst "verlierst" du den Focus auf das Browse was in per PDR 5552 "umgekehrt" beschrieben wird. wenn du nun in den Source von XbpBrowse siehst wirst du sehen das dass "self" im ::HandleEvent( xbeBRW_Navigate, ... ) fehlt was den Unterschied ausmacht.

in meinem WMPlayer "nutze" ich nun den Slider per Wheel und kann , per Focus Trick, auch im "Vollbild" Modus in der DBF navigieren um die Informationen für den nächsten Szene "Cut" zu bekommen.

deshalb sage ich ja das man einen "Save" Button haben sollte und das nicht über den o:KillInputFocus Slot "automatisieren" sollte.
gruss by OHR
Jimmy
Antworten