AGB  ·  Datenschutz  ·  Impressum  







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

Cursor wird nicht angezeigt

Ein Thema von user0815 · begonnen am 7. Jan 2014 · letzter Beitrag vom 31. Okt 2019
Antwort Antwort
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#1

Cursor wird nicht angezeigt

  Alt 7. Jan 2014, 13:12
Auf das Form:
1x TButton
1x TEdit
1x TLabel

Der Button dient als Dummy für den Focus.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption := '';
  Edit1.Text := '';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Button1.SetFocus;
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  if Label1.Caption = 'then Eingabe;
end;

procedure TForm1.Eingabe;
var
  Value : String;
begin
  if InputQuery('Caption', 'Prompt', Value) then
  begin
    if trim(Value) <> 'then
    begin
      Label1.Caption := Value;

      Button1.SetFocus; // Kommentar 1*)
      Edit1.SetFocus;
    end;
  end;
end;
Ich wechsel einmal den Focus und kann weiter in das TEdit Feld eingeben, der Cursor wird dabei nicht angezeigt.

1*) = kommentiere ich die Zeile aus, so erscheint der Cursor in dem Eingabefeld aber eine Eingabe ist (ohne einen erneuten Klick ins Feld) nicht möglich.

Frage: Wie bekommen ich den blinkenden Cursor in das aktuelle Eingabefeld & kann auch was eingeben ?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Cursor wird nicht angezeigt

  Alt 7. Jan 2014, 13:35
Warum das so ist weiß ich spontan auch nicht, ein Treffer der Suchmaschine meines Vertrauens spricht allerdings:

Zitat:
[...]you've probably done something like show another dialog
from an edit's OnExit or OnEnter event. This is a guaranteed way to
confuse Windows
(not Delphi), since Windows doesn't like the programmer
to change focus (by showing another dialog) while focus is already
changing. The end result is Windows gets confused and whacks the
caret
(BTW, you are asking about the _caret_, not the _cursor_).

Please confirm is this sounds like an accurate description of the
problem. There are some ways to avoid confusing Windows.
Quelle: http://www.delphigroups.info/2/29/324211.html


Als reiner Nutzer erwarte ich ehrlich gesagt ein solches Verhalte auch nicht. Ein normales Textfeld. Ich schicke mich an, dort etwas einzutragen und plötzlich poppen darüber (überflüssige?) Dialoge auf. "Was will er denn jetzt? Lass mich doch meinen Kram eintragen" denken sich dann sicher nicht wenige Nutzer.

Geändert von Der schöne Günther ( 7. Jan 2014 um 13:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Cursor wird nicht angezeigt

  Alt 7. Jan 2014, 14:14
Ist für eine TGauge Anzeige. Der aktuelle Anfangswert ist einzugeben, ist der Max Wert noch nicht vorhanden so ist dieser zuvor einmal einzugeben.

Delphi-Quellcode:
      Button1.SetFocus;
      Edit1.SetFocus;
      PostMessage(Edit1.Handle, WM_SETFOCUS, 0, 0);
so funktioniert es.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Cursor wird nicht angezeigt

  Alt 7. Jan 2014, 15:24
@Günther
du bist der Größte, das hab ich bisher noch nicht gefunden.
Bei mir ist es ein Memo, was angeblich - da es auf die Tastatur reagiert, stimmt es wohl - den Fokus hat aber keinen Cursor und keine Auswahl anzeigt.
Und weil es den Fokus hat, funktioniert onEnter auch nicht (denke ich zumindestens)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Ron67

Registriert seit: 10. Sep 2018
Ort: Großraum Nürnberg
13 Beiträge
 
Delphi 12 Athens
 
#5

AW: Cursor wird nicht angezeigt

  Alt 31. Okt 2019, 12:19
Ich hatte das gleiche Problem.

In meiner recht komplizierten Anwendung (ORC) wurde erst der Fokus auf das Edit-Feld gesetzt, dann von einer anderen Prozedur auf eine Zelle im Grid gesetzt und dann von der dritten Prozedur nochmal auf das Edit-Feld.

Gibt man ein Zeichen ein, erscheint es im Edit-Feld, aber da blinkt kein Cursor (caret).
Und das Programm wußte selber nicht, wo der Fokus war, hat deshalb Folgefehler produziert.

Die doppelte Zuweisung des Fokus auf das gleiche Edit-Feld ist nicht schlimm, aber das hin und her darf nicht sein.
  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 19:12 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