AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TValueListEditor: Zelle Focus geben

Ein Thema von blackdrake · begonnen am 21. Okt 2008 · letzter Beitrag vom 26. Okt 2008
Antwort Antwort
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

TValueListEditor: Zelle Focus geben

  Alt 21. Okt 2008, 23:20
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:
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;
Gruß
Daniel Marschall
Daniel Marschall
  Mit Zitat antworten Zitat
Adler

Registriert seit: 29. Apr 2003
Ort: Düsseldorf
30 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TValueListEditor: Zelle Focus geben

  Alt 24. Okt 2008, 17:28
Hallo blackdrake,

vielleicht hilft dir folgender Link weiter:
http://delphiportal.de/541-einer-zel...en-focus-geben
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: TValueListEditor: Zelle Focus geben

  Alt 25. Okt 2008, 11:35
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
Daniel Marschall
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: TValueListEditor: Zelle Focus geben

  Alt 26. Okt 2008, 20:32
Problem #1 und #2 sind durch einen Bug begründet, der nur im OnShow-Ereignis auftritt. Näheres dazu habe ich hier beschrieben: http://www.delphipraxis.net/internal...=957242#957242

Zu Problem #3 habe ich folgende Lösung erarbeitet: http://devboard.viathinksoft.de/view...php?f=34&t=778
Daniel Marschall
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz