vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
sevEingabe - unschöner Cursor-Sprung 
Autor: W. Wolf
Datum: 27.11.18 09:14

Hallo,

um zunächst mal auszuschließen, dass ich falsch an die Sache herangehe, hier meine Frage:

Ich verwende im KeyUp-Ereignis folgenden Code:

Dim rs As ADODB.Recordset
Dim dummy As String
Dim l As Long
    With txtArtikelnummer
    Debug.Print "S" & .selStart
    Dummy = Trim$(.Text)
    l = Len(dummy)
    If  l >= 5 Then
        Set rs = Db.Recordset("SELECT top 99 artnr,benennung FROM ....usw.")
        If Not rs.EOF Then
            Set .Recordset = rs
            .DroppedDown = True
        Else
            Set .Recordset = Nothing
            .DroppedDown = False
        End If
    Else
        Set .Recordset = Nothing
        .DroppedDown = False
    End If
    Debug.Print "E" & .selStart
    End With
Kurzfassung: ab der 6-ten Eingabestelle wird das Recordset der Textbox befüllt und die Listbox angezeigt. Das funktioniert alles wie gewünscht. Problematisch wird es, wenn ich in der Eingabe eine Änderung vornehme. Angenommen im Text steht ABCDEFG. Nun bewege ich den Cursor auf das C mit der Absicht BC durch XY zu ersetzen. In dem Moment wo ich C lösche, greift die Prozedur oben und ersetzt das Recordset, was ja auch korrekt ist. Unschön ist allerdings, dass der Eingabecursor danach an das Ende, also hinter G springt. Das passiert außerhalb meiner Proc, weil dieses Debug.Print noch die richtige Position ausgibt. Für meine Anwender sind diese unkontrollierten Sprünge sehr, sehr ärgerlich. Ist das nun ein Fehler im Control oder gehe ich die Sache grundsätzlich falsch an?

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: ModeratorDieter (Moderator)
Datum: 27.11.18 09:18

Ganz ehrlich; für diesen Zweck ist die Recordset-Anbindung nicht geeignet!

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: W. Wolf
Datum: 27.11.18 10:09

Hallo Dieter,

warum das denn? Das funktioniert perfekt wenn die DB ausreichend schnell ist. Dafür muss man halt sorgen. Ein gut geplanter Index und ein top xx im Select und die Sache läuft wie geschmiert (ohne die kleinste Verzögerung). Habe hier in der DB über 50.000 Artikel.

Es ist ja nur der unnötige Cursorsprung bei .DroppedDown = True der stört. Kann man das nicht unterbinden. Warum muss der Cursor seine Position ändern, wenn die DropDown geöffnet wird?

Was wäre denn die Alternative? Habe mit Autocompete gespielt, das ist aber bei weitem nicht so komfortabel wie mein Code. Da siehst du mal, was dein Control alles kann... (ich bin begeistert).

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: W. Wolf
Datum: 28.11.18 08:26

Dieter schrieb:
Zitat:

Ganz ehrlich; für diesen Zweck ist die Recordset-Anbindung
nicht geeignet!


Ok, vergessen wir das, es geht ja auch nicht ums Recordset. Es geht nur um die DroppedDown-Property.


    With sevText1
        .Style = rsComboBox
        .AutoSelect = False
        .AddItem "Test 1"
        .Text = "Irgendwas"        
        .DroppedDown = True
        .SelStart = 3
    End With
Der Cursor steht nicht wie erwartet hinter dem g, sondern am Textende. Das sollte so nicht sein. Hier macht der Code nicht das was er vorgibt zu machen.

    With sevText1
        .Style = rsComboBox
        .AutoSelect = False
        .AddItem "Test 1"
        .Text = "Irgendwas"        
        '.DroppedDown = True
        .SelStart = 3
    End With
So passt alles. Wenn man nun aber auf den DropDown-Pfeil der Combo klickt, springt der Cursor auch wieder ans Ende.

Nehme an, dass das Aufklappen der Box entkoppelt ist (über einen Timer oder so) und beim Aufklappen der Cursor neu gesetzt wird, warum auch immer. Letztes ist ärgerlich und mich und meine Anwender würde es freuen, wenn das anders wäre. Ich habe momentan keine Idee, wie ich das selbst von außen reparieren könnte.

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: ModeratorDieter (Moderator)
Datum: 28.11.18 10:54

Ich könnte hierzu eine entsprechende Anpassung vornehmen;
allerdings nur noch in der Version 3.0; die Version 2.x wird nicht mehr weitergeplegt.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: W. Wolf
Datum: 28.11.18 11:46

Hallo Dieter,

sofern es keine all zu großen oder gar unüberwindbaren Abwärtskompatibilitäten gibt, sind wir dabei. Ich verwende hier die v2.10.114. Bitte um ein Update-Angebot. Unsere Daten sollten ja bekannt sein.

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: ModeratorDieter (Moderator)
Datum: 04.12.18 17:37

Hallo,
ich habe am 28.11.18 und am 03.12.18 eine Mail mit einem Angebot für sevEingabe 3.0 für 2 Arbeitsplätze geschickt. Da ich keine Reaktion bekomme, vermute ich, dass meine Mail entweder nicht angekommen oder im SPAM gelandet ist...

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: ModeratorDieter (Moderator)
Datum: 05.12.18 19:13

So... E-Mail mit Rechnung etc. ist raus.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: W. Wolf
Datum: 10.12.18 07:54

Dieter schrieb:
Zitat:

So... E-Mail mit Rechnung etc. ist raus.


Vielen Dank! Ist alles installiert und funktioniert wie erwartet. Gut gemacht!

Eine Sache fällt mir auf und die möchte ich hier mal ansprechen, weil sie von allgemeinem Interesse sein könnte. Mir ist aufgefallen, dass die Datei weiter die 20 im Dateiname hat. Mir kommt das entgegen, weil ich die Komponente ohne Aufwand an meine Anwendungs-Clients verteilen kann. Es braucht noch nicht mal eine neue Exe, weil wie es scheint auch die Schnittstellen kompatibel sind. Da ich alle meine Komponenten regles verwende, reicht ein Copy&Paste Distribution. Freut mich sehr.

Dennoch bleiben offene Fragen. Wir haben nun eine Version 3 und nicht wie erwartet die 30 im Dateinamen. Interpretiere ich da was falsch? Hat die 20 eine ganz andere Bedeutung? Ich denke, eine kurzes Statement würde hier allen dienen. Danke!

Schönen Gruß
W. Wolf
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevEingabe - unschöner Cursor-Sprung 
Autor: ModeratorDieter (Moderator)
Datum: 10.12.18 12:42

Das war bewusst so gewollt, dass sich der Dateiname nicht ändern; und zwar wegen der vielen Access-Anwender, die da sonst einen enormen Aufwand gehabt hätten das Control einzeln auf jeder Form zu ersetzen.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel