Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TMemo Cursorproblem (https://www.delphipraxis.net/207498-tmemo-cursorproblem.html)

skoschke 30. Mär 2021 08:06

TMemo Cursorproblem
 
Hallo,

mit folgendem Code möchte ich Text in einem Memo markieren und den Cursor anzeigen:
Delphi-Quellcode:
  MemoEingabe.text:='Hallo Du da draussen';
  MemoEingabe.SelStart := Length(MemoEingabe.Lines.Text) - 5;
  MemoEingabe.SelLength := 3;
  MemoEingabe.SetFocus;
unter Windows steht der Text drin, der Cursor wird angezeigt aber kein Text ist markiert,
unter Android noch schlimmer, Text ist da, aber kein Cursor, keine Markierung und keine Tastatur, die kommt erst wenn man in das Memo tippt!

Wie bekomme ich wenigstens das Memo unter Android dazu, den Cursor anzuzeigen und die Tastatur einzublenden?

Ciao
Stefan

haentschman 30. Mär 2021 08:16

AW: TMemo Cursorproblem
 
Moin...:P

Focus auf das Memo vorher? :gruebel:

skoschke 30. Mär 2021 08:35

AW: TMemo Cursorproblem
 
Bringt leider gar nichts...

Bei Android kommt übrigens die Tastatur wenn ich in das Memo tippe, der Cursor erscheint erst wenn auf der Tastatur eine Taste getippt wird!

Ciao
Stefan

Nachtrag:
In einer Procedure wird
- Memo.Visible und
- Memo.SetFocus nacheinander abgearbeitet.

Testweise habe ich nun (unschön) einen Timer implementiert, der mit dem
- Memo.Visible
- Timer.Enabled gestartet wird und der dann nach 200ms
Memo.setfocus aufruft.

Jetzt erscheint der Cursor und die Tastatur wie gewünscht!
Es muss doch aber einen Weg geben, das auch ohne den Timer hinzubekommen?!

Ciao
Stefan

Delphi.Narium 30. Mär 2021 09:41

AW: TMemo Cursorproblem
 
Mach' bitte mal hinter dem SetFocus noch ein Refresh, RePaint oder ein Application.ProcessMessages rein, damit das Memo auf jeden Fall auch mal neu gezeichnet wird.

Es könnte sein, dass das Neuzeichnen bei Deiner bisherigen Lösung erst nach dem Timer passiert, weil dann zufällig(?) alles neu gezeichnet wird und dadurch dann die Auswahl sichtbar wird?

Keine Ahnung, ob das hilft, aber einen Versuch könnte es wert sein.

skoschke 30. Mär 2021 10:07

AW: TMemo Cursorproblem
 
bringt leider auch keine Verbesserung!

Ciao
Stefan

Harry Stahl 30. Mär 2021 16:37

AW: TMemo Cursorproblem
 
Das ist leider ziemlich eindeutig ein Bug (unter 10.3.3 funktioniert Dein Code). Wäre nett, wenn Du einen entsprechenden Eintrag bei Quality Central machen würdest.

Als WorkAround: Evtl. kannst Du (falls das noch in Deine Programmlogik passt) nach Memo.Selstart := x; den Befehl Memo.Selectword aufrufen, dann erhälst Du das aktuelle Wort, wo der Cursor drauf steht, markiert.

Gerade in 10.4 haben die Entwickler ziemlich viel an der Memo-Komponente rum geschraubt, ich habe auch schon einige Bugs gemeldet (die z.T. auch schon behoben wurden)....


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 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