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/)
-   -   Delphi Überschreib-Funktion von Zeichen im TEdit-Feld (https://www.delphipraxis.net/142256-ueberschreib-funktion-von-zeichen-im-tedit-feld.html)

Ginko 24. Okt 2009 19:25

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Ja genau so meinte ich es wie fkerber es schreibt. Also genau wie wenn man in Delphi mal ausversehen auf die "Einfg" Taste kommt und alles beim Tippen überschrieben wird und man sich furchtbar aufregt...

DeddyH 24. Okt 2009 19:31

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Achso. Neue Idee:
Delphi-Quellcode:
Edit1.Text := Copy(Edit1.Text, 1, Edit1.SelStart) + Key + Copy(Edit1.Text, Edit1.SelStart + 1, Length(Edit1.Text));

Ginko 24. Okt 2009 19:42

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Mit SelStart bekommt man nur die Position wenn ein Zeichen auch selektiert ist, klappt also nicht.

DeddyH 24. Okt 2009 19:43

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Sicher? Ich hab gerade kein Delphi zur Hand, aber war der Meinung, dass man damit die Cursorposition innerhalb des Edits bekommt.

Ginko 24. Okt 2009 19:45

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Ja sicher habs getestet ohne das was markiert ist steht SelStart immer auf der Endnummer des Strings, also auf Length(Edit1.Text).

DeddyH 24. Okt 2009 19:48

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Auch, wenn Du vorher mal die "Pos1" bzw. "HOME"-Taste drückst?

Ginko 24. Okt 2009 19:55

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Nein bringt auch nix, ich denk nochmal drüber nach

Hab es, es ist doch einfacher als ich dachte trotzdem danke :

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  keybd_event(VK_DELETE, 0, 0, 0);
  keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
end;

das wars schon...

DeddyH 24. Okt 2009 20:00

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Das wäre durch Einfügen und Löschen aber auch gegangen, statt in den Tastaturpuffer zu schreiben. Aber meinetwegen.

DP-Maintenance 24. Okt 2009 20:19

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Object-Pascal / Delphi-Language" nach "VCL / WinForms / Controls" verschoben.
Scheint eine VCL-Frage zu sein

Lannes 24. Okt 2009 22:12

Re: Überschreib-Funktion von Zeichen im TEdit-Feld
 
Hallo,
Zitat:

Zitat von Ginko
Ja sicher habs getestet ohne das was markiert ist steht SelStart immer auf der Endnummer des Strings, also auf Length(Edit1.Text).

dann war Dein Testansatz falsch :|

Der imho beste Weg das Überschreiben zu realisieren, ist es in OnKeyDown eine entsprechende Selektion vorzunehmen:
Delphi-Quellcode:
if (Key > 31) and (Edit.SelLength = 0) then
  Edit.SelLength := 1;


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