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
Benutzerbild von stahli
stahli

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

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.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

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.337 Beiträge
 
Delphi 11 Alexandria
 
#3

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.757 Beiträge
 
Delphi 10.4 Sydney
 
#4

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
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 20:37
Eine URL rechtsbündig einzugeben, das ist wohl eher unüblich. Man schreibt hier nun mal von links nach rechts und nicht so wie die im nahen Osten. Gehts mehr Richtung Taschenrechner, dann bleibt wohl nichts anderes übrig, als das TEdit zu erweitern :

http://www.swissdelphicenter.ch/de/showcode.php?id=714

Dieses eigene TEdit hätte dann ja auch eine zusätzliche published property, d.h. schon zur Designzeit könnte man das Verhalten einstellen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

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

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 20:52
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
Da ICH der einzige User meines Programmes sein werde geht das natürlich, nur wollte ich es eigentlich so nicht. Naja, dann muss ich es halt so machen...

@Hansa: Danke für Deinen Tipp, Du scheinst das Problem jedoch falsch verstanden zu haben ( Wenn URL in Deinem Post nicht vorhanden gewesen wäre würde ich sagen "Falscher Thread" ). Spass beiseite, es geht nicht um die Ausrichtung von rechts nach links, sondern darum, nach dem Fokusieren eines TEdit - falls es leer ist - den Text "http://" zu setzen und den Cursor schonmal dahinter (also rechts neben dem "//") zu platzieren, um die Eingabe z.B. mit "www..." sofort beginnen zu können. Vielleicht fällt Dir ja dazu aber auch was ein

Grüsse und Danke schonmal an Alle!
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Curosr in TEdit ans Ende setzen

  Alt 2. Jan 2012, 22:20
ein Versuch ...
Delphi-Quellcode:
procedure TForm1.Edit1Click(Sender: TObject);
begin
   if TEdit(Sender).Tag <> 0 then
      begin
      TEdit(Sender).Tag := 0;
      TEdit(Sender).SelStart := Length(TEdit(Sender).Text) + 1;
      end;
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
   With TEdit(Sender) do
    begin
      if Length(Text)=0 then
          begin
            Text := 'http:\\';
            SelStart := Length(Text) + 1;
            Tag := 1;
          end;
    end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 05:33 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