![]() |
AW: Curosr in TEdit ans Ende setzen
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. :mrgreen: Gehts mehr Richtung Taschenrechner, dann bleibt wohl nichts anderes übrig, als das TEdit zu erweitern :
![]() Dieses eigene TEdit hätte dann ja auch eine zusätzliche published property, d.h. schon zur Designzeit könnte man das Verhalten einstellen. |
AW: Curosr in TEdit ans Ende setzen
Zitat:
@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 :lol: Grüsse und Danke schonmal an Alle! |
AW: Curosr in TEdit ans Ende setzen
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; |
AW: Curosr in TEdit ans Ende setzen
Zitat:
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. |
AW: Curosr in TEdit ans Ende setzen
Delphi-Quellcode:
So, nun versuch mal, das Edit-Feld zu leeren.
Procedure TForm1.Edit1Change(Sender: TObject);
begin if Edit1.Text='' Then begin Edit1.Text := 'http://'; Edit1.SelStart := Length(Edit1.Text); end; end; |
AW: Curosr in TEdit ans Ende setzen
Und wo ist da jetzt der große Unterschied zu Bummis Code, außer dass dieser den Sender auswertet und das Tag belegt?
|
AW: Curosr in TEdit ans Ende setzen
Zitat:
Und, na ja, es ist schon eine komische Frage und um ehrlich zu sein, muss ich suchen, um Gemeinsamkeiten zu finden. 1. Ich verwende ein Event (OnChange) und 3 signifikante Zeilen 2. Bummi verwendet zwei Events(OnClick und OnEnter) und 7 Programmzeilen. Auch sonst ist die Logik eine andere. |
AW: Curosr in TEdit ans Ende setzen
Ich würde sogar sagen unser Code hat überhaupt nichts gemeinsam ....
und auch wenn der Code kürzer ist tut er IMHO nicht was er soll. |
AW: Curosr in TEdit ans Ende setzen
Zitat:
|
AW: Curosr in TEdit ans Ende setzen
Aber um es noch mal zusammenzufassen. Das Problem ist ja das Onclick mit der Maus. Wenn man durch Tab in das Eingabefeld wechselt funktioniert es ja richtig.
Ich würde wie in weiter oben schon angegeben auch noch das Onclick Ereignis zusätzlich zum OnEnter nutzen
Delphi-Quellcode:
Ich denke so funktioniert es wie der TE es sich vorgestellt hat
procedure TForm16.EditurlClick(Sender: TObject);
begin if EditURL.Text = 'http://' then EditURL.SelStart := EditURL.GetTextLen; end; procedure TForm16.EditurlEnter(Sender: TObject); begin if ((EditURL.Enabled) and (Length(EditURL.Text) = 0)) then begin EditURL.Text := 'http://'; EditURL.SelStart := EditURL.GetTextLen; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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