![]() |
letzter eingegebener buchstabe in memo
Hi Leute
Ich will in einem Memo den letzten eingegebenen Buchstaben herausfinden (beim OnChange des Memos). Also nicht den letzten Buchstaben des ganzen Textes, sondern eben den letzten eingegebenen Buchtsaben, der kann auch mitten im Text stehen. Dnake schonmal im Vorraus |
AW: letzter eingegebener buchstabe in memo
im OnChange geht das schlecht. Dafür wirst du schon OnKeyDown bemühen müssen.
Bernhard |
AW: letzter eingegebener buchstabe in memo
Ja Ok dann mach ichs mit einem OnKeyDown, aber wie geht es dann da?
|
AW: letzter eingegebener buchstabe in memo
Einfach in Variable/Member Zwischenspeichern:
Delphi-Quellcode:
procedure TForm.FormKeyPress(Sender: TObject; var Key: Char);
begin LastChar := Key; end; |
AW: letzter eingegebener buchstabe in memo
dann bekommich aber keine groß/klein schreibung hin oder? und dann sind auch zum beispiel ß und ? die gleichen tasten. Mein konkretes problem wäre dass ich merke dass ein Wort zu ende ist. also brauch ich sämtliche satzzeichen, wenn ich aber das ? benutze bekommich ich als resultat auch dass das wort zu ende ist wenn ich zum beispiel "Straße" schreibe mitten im wort, weil ß und ? die gleiche Taste haben.
|
AW: letzter eingegebener buchstabe in memo
FormKeyPress enthält das Zeichen inklusive Groß-/Kleinschreibung und sonstewas.
Bei FormKeyDown/-Up ist es so, wie du sagst. Wozu benötigst du diesen Buchstaben eigentlich?
Delphi-Quellcode:
könnte oftmals auch ausreichen, falls man es nicht oft macht und nicht jeden Buchstaben braucht.
Copy(Memo1.Text, Memo1.SelStart + Memo1.SelLength + 1, 1);
(mit Einschränkungen bei Cursorumpositionierungen) |
AW: letzter eingegebener buchstabe in memo
also ist Key dann zum beispiel ':' für shift + . ?
|
AW: letzter eingegebener buchstabe in memo
Du bekommst einen Char, a bei a und A wenn gleichzeitig Shift usw.
KeyPress liefwrt halt zum Unterschied zu KeyDown einen Char statt dem Scancode |
AW: letzter eingegebener buchstabe in memo
ok jetzt hab ichs glaub ich verstanden,danke, eine letzte frage hätte ich aber doch noch: welchen wert hat key für eine neuzeile (also enter-taste)?
|
AW: letzter eingegebener buchstabe in memo
Wäre dann #13
|
AW: letzter eingegebener buchstabe in memo
Zitat:
Delphi-Quellcode:
Wo ist da Shift zu finden?
Memo1KeyPress(Sender: TObject; var Key: Char);
Von mir gab es vor Kurzem einen Thread, wo ich in OnKeyDown die "ergebende" Taste bekommen wollte (die blöde Suche findet ihn nur nicht), aber das Ergebnis war: es ist nicht (einfach) möglich. |
AW: letzter eingegebener buchstabe in memo
Zitat:
|
AW: letzter eingegebener buchstabe in memo
Doch es hat Einfluss! Das ist ja gerade der Unterschied zwischen KeyPress und KeyDown!
|
AW: letzter eingegebener buchstabe in memo
also funktioniert es doch... und eine neuzeil müsste doch eigentlich aus 2 chars bestehen oder? zeile nach unten + carriage return
|
AW: letzter eingegebener buchstabe in memo
In einem String ja. Der Tastendruck hat aber nur einen Char wie alle andere
|
AW: letzter eingegebener buchstabe in memo
Die Enter-Taste ist eine Taste, also ein Zeichen und das ist nunmal die #13 ... wie der Zeilenumbruch in der Komponente verwaltet wird, ist eine andere Sache.
Ja, theoretisch könnte man Key=Ord('A') + Shift=ssShift als 'A' und Key=Ord('A') + Shift ohne ssShift als 'a' ansehn, aber probiere mal Folgendes: - drücke auch mal die Alt-Taste - drücke mal ALT (nicht [Alt Gr]) und gleichzeitig 123 auf dem Zehnerblock - drücke ´ und dann Shift + A ... das ergibt dann Á und nicht nur A - ... Einfach nur OnKeyDown/-Up, ohne Beachtung vergangener Tastatureingaben und anderer Dinge, kann kein zuverlässiges Ergebnis liefern. |
AW: letzter eingegebener buchstabe in memo
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 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