DCCombobox mit Wortergänzung

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCCombobox mit Wortergänzung

Beitrag von Manfred »

Hi,

eigentlich wollte ich eine Combobox bauen, in der sofort der erste Eintrag zu sehen ist und die automatisch wenn getippt wird den nächstähnlichen Satz direkt anzeigt. Irgendwie kriege ich das nicht hin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCCombobox mit Wortergänzung

Beitrag von Tom »

Mmh. Ist doch ein Standardverhalten der DCCOMBOBOX:

Code: Alles auswählen

FUNCTION Test()
LOCAL GetList := {}
LOCAL aValues := {"Erste Möglichkeit","Zweite Möglichkeit","Dritte Möglichkeit"}, cValue := aValues[1]

@ 1,1 DCCOMBOBOX cValue LIST aValues TYPE XBPCOMBO_DROPDOWNLIST SIZE 15,10 

DCREAD GUI FIT
Die Box ist mit "Erste Möglichkeit" vorbefüllt, weil "cValue" entsprechend belegt ist. Tippt man jetzt "Z", wandert sie zum zweiten Eintrag.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCCombobox mit Wortergänzung

Beitrag von Manfred »

dachte ich eigentlich auch, aber irgendwie will das nicht so wie ich.

Code: Alles auswählen

@ oDialogZusatz:nOben,DCGUI_COL DCCOMBOBOX cAnrede;
                                                EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl,;
                                                          oAdressen:addEditControl(o);
                                                     };
                                                LIST aAnrede;
                                              OBJECT oDialogZusatz:oComboBoxAdressen;
                                              PARENT oDialogZusatz:oRahmenAdresse;
                                                SIZE 90,oDialogZusatz:nSayHoehe*3;
                                             TABSTOP
das Array ist gefüllt, aber das Eingabefeld ist leer. Wenn ich die Box aufklappe, dann sehe ich die Einträge. Ich war jetzt irgendwie der Meinung, dass zumindest der erste Eintrag auch direkt zu sehen ist, wenn nichts vorgegeben wird. Dem ist aber nicht so. :? Wenn ich jetzt im Eingabefeld tippe, dann erscheint nichts, nur der gerade getippte Text.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCCombobox mit Wortergänzung

Beitrag von Manfred »

Tom,

ich hatte Deine Antwort nicht richtig gelesen

Code: Alles auswählen

cValue := aValues[1]
Das hatte ich falsch umgesetzt. Jetzt wird zumindest angezeigt, was ich angezeigt haben will. Das mit der Auswahl muß ich dann nochmas schauen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCCombobox mit Wortergänzung

Beitrag von Tom »

Hallo, Manfred.

Wenn Du die Link-Variable nicht füllst, ist das SLE leer. Dann funktioniert auch die Suche nicht. Enthält die abhängige Variable einen Wert aus der Liste, funktioniert beides. Wenn man mit Comboboxen konsistent arbeiten will, also tatsächlich die Auswahl auf das beschränken, was ausgewählt werden kann, sollte man immer dafür sorgen, dass die abhängige Variable beim Aufruf mit einem gültigen Wert befüllt ist, also defaultet. Alternativ kannst Du das Array auch um einen leeren Eintrag ergänzen (also "nichts" als Auswahl gültig machen - sinnvollerweise zuoberst); dann funktioniert auch beides.

Wenn Du das nur als zusätzliches Eingabehilfsmittel verwenden willst (für Felder, die auch leer bleiben können), solltest Du mit DCSAY ... GET ... COMBO arbeiten. Das erlaubt die Anzeige eines Arrays mit möglichen Auswahlelementen als zusätzliche Möglichkeit, ohne jedoch Einfluss auf die eigentliche Eingabe zu haben. Das kann man dann z.B. über eine entsprechende Belegung des Keyboard-Slots des SLEs mit einer Auto-Vervollständigen-Funktion ergänzen; dafür musst Du Dir einfach mal die aktuellen Beispiele von Roger anschauen. Ist ganz simpel.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCCombobox mit Wortergänzung

Beitrag von Manfred »

Hm,

ich stelle gerade fest sowas wie :seteditable() kennt DCCOMBOBOX gar nicht. Muß man in Eval von Hand einfügen. Was mir auch noch auffällt ist, das man kein mehrdimenisonales Array für weitere Infos intern benutzen kann, dann Roger die Übernahme ja selbst regelt und somit kann man nicht sagen nimm nur den 1.Wert aus dem Array. Schade. Oder gibt es da einen Trick? Ich würde nämlich ganz gerne auch die recNr. des Inhaltes aus der DBF mitführen, damit ich später weiß, was ich schreiben muß.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCCombobox mit Wortergänzung

Beitrag von Manfred »

Hi,

da ich gerade wieder an so einem Fall bin: Die automatische Wortergänzung klappt nicht. Auch nicht, wenn ich den Wert der Variable mit einer Vorgabe aus dem Array fülle.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten