Registriert seit: 4. Aug 2006
502 Beiträge
Delphi 5 Enterprise
|
AW: TEdit beim überschreiten von MaxLength etwas auslösen
13. Jul 2021, 17:14
Hallo,
und ganz herzlichen Dank für eure Antworten.
Wer's mal braucht, bei mir läuft es so:
Code:
constructor TMSEdit.create (aOwner: TComponent);
begin
inherited create (aOwner);
fToMuchCharacters := false; // private variable
end;
procedure TMSEdit.keyDown (var key: word; shift: TShiftState);
begin
// erhält das Edit den Focus, und ist etwas selektiert, muss das, vorher, gelöscht werden...
if self.selLength > 0 then
begin
inherited keyDown (key, shift);
exit;
end;
if (self.maxLength > 0) and
(shift = []) and
(not (key in [vk_back, vk_delete, vk_return, vk_left, vk_right, vk_home, vk_end, vk_tab])) and
(length (self.text) = self.maxLength) and
assigned (onReachMaxLength) then
begin
onReachMaxLength (self, 's_Stop');
fToMuchCharacters := true;
end;
inherited keyDown (key, shift);
end;
procedure TMSEdit.keyPress (var key: char);
// die wird gebraucht, damit es nicht piept. ;-)
begin
if fToMuchCharacters then
begin
fToMuchCharacters := false;
key := #0;
end;
inherited keyPress (key);
end;
Herzlich grüßt
Wandogau
Marco Steinebach
|
|
Zitat
|