Delphi-PRAXiS
Seite 2 von 3     12 3      

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/)
-   -   Curosr in TEdit ans Ende setzen (https://www.delphipraxis.net/165471-curosr-tedit-ans-ende-setzen.html)

Hansa 2. Jan 2012 20:37

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 :

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.

scrat1979 2. Jan 2012 20:52

AW: Curosr in TEdit ans Ende setzen
 
Zitat:

Zitat von Klaus01 (Beitrag 1144068)
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... :evil:

@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!

Bummi 2. Jan 2012 22:20

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;

himitsu 2. Jan 2012 22:44

AW: Curosr in TEdit ans Ende setzen
 
Zitat:

Zitat von scrat1979 (Beitrag 1144055)
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.

Furtbichler 3. Jan 2012 07:42

AW: Curosr in TEdit ans Ende setzen
 
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.

DeddyH 3. Jan 2012 07:46

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?

Furtbichler 3. Jan 2012 08:01

AW: Curosr in TEdit ans Ende setzen
 
Zitat:

Zitat von DeddyH (Beitrag 1144102)
Und wo ist da jetzt der große Unterschied zu Bummis Code, außer dass dieser den Sender auswertet und das Tag belegt?

Ich finde meinen Code irgendwie -wie soll ich's sagen- kürzer?

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.

Bummi 3. Jan 2012 09:27

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.

DeddyH 3. Jan 2012 09:29

AW: Curosr in TEdit ans Ende setzen
 
Zitat:

Zitat von Bummi (Beitrag 1144113)
und auch wenn der Code kürzer ist tut er IMHO nicht was er soll.

Das ist die Antwort auf meine (eigentlich rhetorische) Frage :mrgreen:

v2afrank 3. Jan 2012 12:11

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:
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;
Ich denke so funktioniert es wie der TE es sich vorgestellt hat


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Seite 2 von 3     12 3      

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