AGB  ·  Datenschutz  ·  Impressum  







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

Curosr in TEdit ans Ende setzen

Ein Thema von scrat1979 · begonnen am 1. Jan 2012 · letzter Beitrag vom 9. Jan 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Curosr in TEdit ans Ende setzen

  Alt 1. Jan 2012, 21:20
Oups.
Ich hatte die zweite Zeile übersehen und gedacht, der SelStart würde nur für Leerstrings aufgerufen.
Bei mir gilt die Feier-Ausrede übrigens gar nicht. Ich habe ordnungsgemäß gearbeitet.

Bei mir funktioniert: odEditPanel.SelStart := MaxInt; Hast Du mal debugt, was überhaupt durchgeführt wird und was Text und TextLength liefert?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 05:44
Okay, auf das bin ich natürlich nicht gekommen und nein, ich habe nicht gedebugged Ich sah dafür aber auch keinen Grund, das Edit ist ja definitiv vor dem Aufruf leer...

Werde es heute Abend gleich mal probieren und posten, ob es geklappt hat. Dank Dir!
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 19:02
Hab es versucht, leider ohne Erfolg, der Cursor bleibt nach wie vor am Beginn stehen

EDIT: Habe gerade noch herausgefunden, dass es funktioniert, wenn man das Control über TAB anspringt, klickt man in das TEdit mit der Maus rein, geht der Code leider nicht. Bei einem leeren Projekt sieht es übrigens exakt gleich aus...
Michael Kübler

Geändert von scrat1979 ( 2. Jan 2012 um 19:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Cursor in TEdit ans Ende setzen

  Alt 2. Jan 2012, 19:24
Ach so, Du hast den Code im Edit.OnEnter?
Das sollest Du besser bei der Initialisierung des Formulars durchführen.

Alternativ wäre eine Ableitung von TEdit denkbar, die entsprechend angepasst wird.

Oder einen Timer starten, der SelStart mit einer kurzen Verzögerung durchführt.
Das widerspricht dann allerdings dem Standardverhalten und ist daher nicht unbedingt zu empfehlen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Cursor in TEdit ans Ende setzen

  Alt 2. Jan 2012, 19:37
Ach so, Du hast den Code im Edit.OnEnter?
Das sollest Du besser bei der Initialisierung des Formulars durchführen.

Alternativ wäre eine Ableitung von TEdit denkbar, die entsprechend angepasst wird.

Oder einen Timer starten, der SelStart mit einer kurzen Verzögerung durchführt.
Das widerspricht dann allerdings dem Standardverhalten und ist daher nicht unbedingt zu empfehlen.
Hmmmm. Aber ich will den Code ja erst explizit ausführen, wenn ich auf das TEdit klicke (bzw. wenn es den Focus erhält) und nicht schon, sobald das Formular aufgerufen / angezeigt wird. Es muss doch möglich sein, "http://" in das TEdit zu schreiben wenn es den Focus erhält und keinen Text enthält und den Curosr dann dahinter zu plazieren. Ich meine, wir fliegen zum Mars und bauen Raumstation in hunderten Kilomenter Höhe aber das kleine Problem bekommen wir nicht hin

Hoffe auf weitere Tipps...
Michael Kübler

Geändert von scrat1979 ( 2. Jan 2012 um 19:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Cursor in TEdit ans Ende setzen

  Alt 2. Jan 2012, 19:56
Ich meine, wir fliegen zum Mars und bauen Raumstation in hunderten Kilomenter Höhe...
Aber WIR doch nicht

Ohne dass ich das jetzt im Detail untersucht habe, mal ein paar Überlegungen:

Wenn Du in ein Edit klickst, wird der Cursor an die entsprechende Position gesetzt. Das würde man auch so erwarten.
Dein gewünschtes Verhalten würde dem eher widersprechen.
Vielleicht kannst Du die Anzeige von "http://" einfach unterlassen und ggf. bei der späteren Verarbeitung ergänzen.

Wenn Du es im OnEnter machst, hat das Edit schon die Kontrolle übernommen. Der Klick ist ja schon erfolgt und die Klickposition vermerkt.
Dann wird der Fokus gesetzt und OnEnter aufgerufen. Dann setzt das Edit den Fokus an die Klickposition. Ich würde das zumindest so vermuten.
Im OnEnter kannst Du daher dann den Cursor nicht in jedem Fall beliebig setzen.

Du müsstest dazu das Verhalten des Edits ändern (durch eine Komponentenableitung) oder die Änderung nachträglich veranlassen (z.B. durch einen Timer).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.780 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 20:11
Hallo,

würde es nicht gehen, wenn Du das http:// nachträglich hinzufügst wenn der User es nicht eingetragen hat. z.B. dann wenn das Editfeld verlassen wird.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.368 Beiträge
 
Delphi 12 Athens
 
#8

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 22:44
klickt man in das TEdit mit der Maus rein, geht der Code leider nicht.
Warum sollte es auch?

Hab hier nicht alles durchgelesen, aber wann/wo wurde der Code denn ausgeführt?

Passiert das vor dem Loslassen der Maustaste, dann ist das Verhalten vollkommen korrekt, denn mit Loslassen der Maustaste wird der Cursor ebenfalls an die Position des Mauszeigers gesetzt und schon ist es egal wo er vorher hingesetzt wurde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: Curosr in TEdit ans Ende setzen

  Alt 3. Jan 2012, 07:42
Delphi-Quellcode:
Procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text='Then begin
    Edit1.Text := 'http://';
    Edit1.SelStart := Length(Edit1.Text);
  end;
end;
So, nun versuch mal, das Edit-Feld zu leeren.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#10

AW: Curosr in TEdit ans Ende setzen

  Alt 3. Jan 2012, 07:46
Und wo ist da jetzt der große Unterschied zu Bummis Code, außer dass dieser den Sender auswertet und das Tag belegt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:21 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-2025 by Thomas Breitkreuz