![]() |
TValueListEditor: Zelle Focus geben
Hallo.
Gibt es eine Möglichkeit, beim TValueListEditor einer Zelle, z.B. [1, 1] - in diesem Fall die erste editierbare Zelle den Focus zu geben? Wenn ich nur vle.SetFocus() schreibe, dann bekommt zwar die ganze Komponente den Fokus, aber: a) die zuletzt editierte/selektierte Zelle hat den Fokus b) der Cursor blinkt nicht - erst, wenn man etwas eingegeben hat.
Delphi-Quellcode:
Gruß
procedure TSearchForm.form_show(Sender: TObject);
var i: integer; begin // Clear value list's values for i := 1 to vle.RowCount - 1 do begin vle.Cells[1, i] := ''; end; // ToDo: Zelle [1, 1] markieren? end; Daniel Marschall |
Re: TValueListEditor: Zelle Focus geben
Hallo blackdrake,
vielleicht hilft dir folgender Link weiter: ![]() |
Re: TValueListEditor: Zelle Focus geben
Hallo.
Vielen Dank für die Antwort. Ich hatte die ganze Zeit nach einer Methode á la Select(), SelCell() etc. gesucht und auch bei Google kein brauchbares Ergebnis gefunden. Vielen Dank für den Link! Das mit dem Selektieren funktioniert nun, jedoch besteht immer noch Problem B: 1. Wenn ich die Row:=, Col:=, .SetFocus Prozedur durchgeführt habe, hat die Zelle zwar den Fokus, aber es ist kein Blinke-Cursor sichtbar, der dem Benutzer verrät "hier kann man Eintippen". Der Textcursor wird erst sichtbar, wenn der Benutzer ein Zeichen eintippt! 2. Und was eigentlich noch schlimmer ist: Ist die (nicht sichtbar) selektierte Zelle mit einem Inhalt gefüllt, so müsste ja eigentlich der Text mit der Highlight-Farbe unterlegt sein. Ist es aber nicht! Sobald der Benutzer einen Buchstaben eintippt, ist der Text in der Zeile weg. Der Benutzer weiß also gar nicht, dass er sich im Überschreiben-Modus befunden hat und der Text ist weg. Kann dieses Fehlverhalten (1, 2) jemand bestätigen? Ich nutze Turbo Delphi. 3. Außerdem wäre es mir wirklich lieber, wenn eine selektierte Zelle nicht den Text zum Überschreiben markieren würde, sondern lediglich den Textcursor an das Ende des Textes setzen würde. Ich frage mich, was die VCL-Entwickler gedacht haben, als sie das Teil erstellt haben... Gruß blackdrake |
Re: TValueListEditor: Zelle Focus geben
Problem #1 und #2 sind durch einen Bug begründet, der nur im OnShow-Ereignis auftritt. Näheres dazu habe ich hier beschrieben:
![]() Zu Problem #3 habe ich folgende Lösung erarbeitet: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz