gleichzeitig edit bearbeiten & items hervorheben
-
hallo,
wie kann ich in einem editfeld schreiben, während die selektierten items einer listview gleichzeitig hervorgehoben werden?
wenn der focus auf listview gesetzt wird, wird ja der focus vom editfeld genommen.
listview muss nicht im fokus stehen, es soll halt nur erkennbar sein, welche items selektiert sind.lg,
momith
-
Eigenschaft HideSelection der ListView auf false setzen
grüssle
-
hideselection war schon auf false...
funktioniert das denn bei dir?
-
momith schrieb:
hideselection war schon auf false...
funktioniert das denn bei dir?
bei einem TListView: Ja!
Was funktioniert bei dir nicht? Die Farbe der Markierung, oder ist im ListView gar keine Markierung mehr wenn der Focus im Edit ist?
grüssle
-
Smitty schrieb:
oder ist im ListView gar keine Markierung mehr wenn der Focus im Edit ist?
genau das ist das problem.
-
ich beschreibe das problem mal genauer:
ich hab eine suche für die lv geschrieben und die wird durchgeführt, sobald der edittext(der text, nach dem gesucht wird) sich ändert.
am ende der suchfunktion wird das gefundene item selektiert, damit der faule benutzer nur einen blick auf die lv werfen muss, während er den text eingibt.
Aber da die markierung natürlich nicht sichtbar wird, muss ich den focus auf die lv setzen, wobei der focus vom edit genommen wird.
d.h. man gibt einen buchstaben ins edit ein und schon ist der focus weg und man muss auf das editfeld klicken, um den nächsten buchstaben einzugeben.
ich löse das ganze jetzt erstmal mit einem button, aber wenn jemand eine idee hat, wäre das echt super
-
okay, gerade was gefunden: die listview von "alphacontrols" hat die eigenschaft, die itemmarkierung anzuzeigen, wenn der focus nicht drauf gerichtet ist. sehr praktisch
-
Smitty schrieb:
Eigenschaft HideSelection der ListView auf false setzen
ach ja, das war auch hilfreich. danke sehr
-
Du sollst ja auch den Fokuswechsel auf das ListView weglassen, denn mittels HideSelection = false wird ja dann die Selektion (in dunkelgrau) angezeigt.
Edit: zu spät...
-
momith schrieb:
... suche für die lv ... die wird durchgeführt, sobald der edittext(der text, nach dem gesucht wird) sich ändert. ...
TEdit::OnChange sollte das ein, was du suchst.
grüssle
-
@Th69 aus irgendeinem grund klappt das hideselection=false auch ohne fokuswechsel nicht. liegt wohl an mir
@Smitty ja das war mir klar
aber wenn ich das onchange event verwende, muss der benutzer für jeden einzelnen buchstaben auf das edit klicken aufgrund des fokuswechsel.
und wenn der fokuswechsel nicht da ist, sieht man nicht welches item gerade markiert ist, das war mein problem.hab mich wohl ein bisschen unverständlich ausgedrückt.wie gesagt, mit der lv von alphacontrols funktioniert es jetzt.
-
momith schrieb:
@Th69 aus irgendeinem grund klappt das hideselection=false auch ohne fokuswechsel nicht. liegt wohl an mir
@Smitty ja das war mir klar
aber wenn ich das onchange event verwende, muss der benutzer für jeden einzelnen buchstaben auf das edit klicken aufgrund des fokuswechsel.
und wenn der fokuswechsel nicht da ist, sieht man nicht welches item gerade markiert ist, das war mein problem.hab mich wohl ein bisschen unverständlich ausgedrückt.wie gesagt, mit der lv von alphacontrols funktioniert es jetzt.
???
-> Texteingabe im Edit.
-> im Edit onChange wird dann die Suchfunktion mit dem Text gestartet
-> in der Suchfunktion wird das Item in der LV selektiert, also: z. B. ListView->ItemIndex = Index der Übereinstimmung
-> weiteren Text eingebenIch sehe hier keinen Focus Wechsel, und wenn doch, einfach nach setzen des ItemIndex in der LV:
Edit->SetFocus(); Edit->SelStart = Edit->Text.Length(); // Cursor hinter Text
und gut is.
grüssle
-
das gibts doch nicht
ich hatte gestern meinen bildschirm ein wenig nach oben gerichtet,und das ganze nochmal versucht.
wenn ich mich ducke und von unten drauf gucke, erkenne ich jetzt einen leicht hellgrauen balken. mein bildschirm ist einfach zu hell eingestellt. xD
danke smitty für deine mühe ,
tut mir echt leid, darauf hätt ich früher kommen müssen
-
momith schrieb:
das gibts doch nicht
...
wenn ich mich ducke und von unten drauf gucke, erkenne ich jetzt einen leicht hellgrauen balken. mein bildschirm ist einfach zu hell eingestellt. ...Mit einer 'alten' Röhre wäre das nicht passiert
Bist aber bestimmt nicht der erste.grüssle