Problem DBGrid Datensatz markieren halb! gelöst

Hallo
danke für eure Hilfe, naja es war nur die Hälfte.
Stimmt mit euren Befehlen kann ich die erste Zeile markieren.
Leider geht der Focus aber dennoch auf den einen Commandbutton bzw. wenn ich etwas auswähle mit der Maus eben auf die Auswahl und nicht auf das DBGrid, solange ich die Zeile nicht mit der Maus auswähle.

Wenn ich jetzt nur den Befehl ausführe, wird zwar die Zeile markiert, das DBGrid hat aber nicht den Focus.
Wenn ich jetzt sage DBGrid.setFocus, springt der Cursor zwar in die 1.Zelle, was wiederum ebenfalls nicht die gesuchte Lösung ist.

Wie markiere ich die Zeile und es ist der Focus auf dem DBGRid und nirgends anders. Er darf aber auch in keiner Zelle sein.

Nochmals bildlich dargestellt, ich kann mit der Maus links genau eine Zeile markieren. Dann ist kein Focus mehr auf einem anderen Element.
Was dahinter alles abgeht und ob das Grid damit den Focus erhält keine Ahnung, jedenfalls brauche ich das genau so.

Ich hoffe das Problem war verständlich erläutert.
Mfg Werner

Hallo Werner,

danke für eure Hilfe, naja es war nur die Hälfte.

*g* ich hatte mich zu dem Thema noch nicht gemeldet.
Warum? Weil ich nicht verstehe, was Du vor hast.

Stimmt mit euren Befehlen kann ich die erste Zeile markieren.
Leider geht der Focus aber dennoch auf den einen Commandbutton
bzw. wenn ich etwas auswähle mit der Maus eben auf die Auswahl

Moment! Verstehe ich das richtig? Du willst einen Command Button anklicken, es soll etwas passieren, aber Dein DBGrid soll dabei den Focus nicht verlieren? Das geht nicht.

und nicht auf das DBGrid, solange ich die Zeile nicht mit der
Maus auswähle.

Welche ‚Zeile‘? Das DBGrid stellt ja den Inhalt einer Tabelle (oder Abfrage) einer Datenbank dar. In der ersten Zeile stehen die Feldnamen, die Zeilen darunter entsprechen den Datensätzen.

Wenn ich jetzt nur den Befehl ausführe, wird zwar die Zeile
markiert, das DBGrid hat aber nicht den Focus.
Wenn ich jetzt sage DBGrid.setFocus, springt der Cursor zwar
in die 1.Zelle, was wiederum ebenfalls nicht die gesuchte
Lösung ist.

Der Cursor steht dann also im ersten Feld des ersten Datensatzes.
wo hättest Du ihn gern? Das hebe ich immer noch nicht verstanden.

Wie markiere ich die Zeile und es ist der Focus auf dem DBGRid
und nirgends anders. Er darf aber auch in keiner Zelle sein.

Das DBGrid soll den Focus haben, aber es soll kein Datensatz markiert sein, richtig?

Nochmals bildlich dargestellt, ich kann mit der Maus links
genau eine Zeile markieren. Dann ist kein Focus mehr auf einem
anderen Element.

Willst du einen Datensatz markieren, oder die Feldnamen?

Was dahinter alles abgeht und ob das Grid damit den Focus
erhält keine Ahnung, jedenfalls brauche ich das genau so.

Ich hoffe das Problem war verständlich erläutert.

Für mich immer noch nicht. :wink: Du kennst mich ja, das kann bei mir dauern. bevor ich nach einer Lösung suche, würde ich das Problem gern verstehen.

Gruß, Rainer

Lass erst mal die anderen ran
Hi Rainer,
lass mal die anderen zu dem Thema was suchen, die haben glaub ich die Problematik verstanden. Es geht um mein blödes Mausrad, das damit funktionieren soll.
Es funktioniert leider nur, wenn ich mit der Maus links im DBGrid den ersten Datensatz markiere. Ansonsten ist ja der Datensatz aktiv oder der Focus auf einem anderen Element. Dann geht das Rad rauf runter rauf runter rauf runter usw. wie ich will.

So und ich will nicht immer, wenn ich die Form aufrufe erst einen Datensatz markieren damit das doofe Rad geht.
Also hatte ich darum gebeten, das ich den Befehl dazu brauche.
Den habe ich ja nun bekommen, mit .RowBookmark (0) wird die erste Zeile markiert.

Aber ätsch, der Focus geht nicht von meinem Commandbutton oder wo er auch immer ist und daher geht mein Mausrad nicht.

Mfg Werner

Hallo Werner,

Aber ätsch, der Focus geht nicht von meinem Commandbutton oder
wo er auch immer ist und daher geht mein Mausrad nicht.

von allein verliert der Button den Focus nicht. Den mußt Du schon selbst auf das DBGrid setzen.

Hast Du schon mal im MouseMove Ereignis des BDGrid den Focus auf das DBGrid gesetzt?

Gruß, Rainer

Hallo
ja wenn ich wüsste wohi wäre ich weiter.
SetFocus ist es wohl nicht, weil er da in eine Zelle springt.
MouseMove, was meinst du, immer wenn ich die Maus bewege???
Das soll auch nicht sein, sonst komme ich da ja nicht mehr weg.

Hallo Werner,

SetFocus ist es wohl nicht, weil er da in eine Zelle springt.

ohne Setfocus geht’s garantiert nicht.

MouseMove, was meinst du, immer wenn ich die Maus bewege???

Das Mousmove-Ereignis von DBGrid. Das tritt immer ein, wenn die Maus über das Grid bewegt wird. Nur dann, nur über dem Grid. Natürlich mußt Du da noch reinschreiben, daß Setfocus nur ausgeführt werden soll, wenn das Flexgrid den Focus noch nicht hat.
Hattest Du nicht schon den passenden Befehl, der den Cursor aus dem Flexgrid nimmt? ‚Bookmark (0)‘ oder so? … (noch nicht benutzt)

Gruß, Rainer

PS. Das Scrollrad funktioniert bei mir im DBGrid gar nicht. ;-(

Hallo Ihr anderen
Hi Rainer,
kann ja auch net gehen, weil ich eine Routine habe, die es ausführen soll.

Irgendetwas muß doch passieren, wenn ich den Datensatz links mit der Maus markiere. Bekommt es dann den Focus oder nicht???
Das muß sich doch lösen lassen.

Mfg Werner

Hi, Werner!

kann ja auch net gehen, weil ich eine Routine habe, die es
ausführen soll.

Theoretisch sollte aber wenigstens das Ereignis vom Control bereitgestellt werden, oder?

Irgendetwas muß doch passieren, wenn ich den Datensatz links
mit der Maus markiere. Bekommt es dann den Focus oder nicht???
Das muß sich doch lösen lassen.

So, wie Du es beschreibst, dann vielleicht doch oder wahrscheinlich nicht. Ich würde es dann einfach mal damit probieren, mit den einzelnen Windows-Handles und den entsprechenden Messages rumzuprobieren. Vielleicht kommst Du da weiter…

Gruß, Manfred

was meinst du
Hallo
was meinst du mit Windows-Handles und MEssages.
Dein Ansatz war ja richtig, es sieht genau so aus, wie wenn ich es mit der Maus anklicke, fehlt nur noch irgendetwas.

Mfg Werner

Hallo Werner,

was meinst du mit Windows-Handles

das wird ein neues Kapitel zwischen dir und VB. :wink:

Lad Dir mal die API-Guide von http://www.allapi.net und sieh das schon aml durch. Du wirst viel interessantes finden. Unter anderem Handles.

Gruß, Rainer