MaxLength gilt nur für die Eingabe per Tastatur!
Ansonsten musst du überprüfen, ob die Länge des Editfeldes nicht größer als 4 ist:
Delphi-Quellcode:
if Length({Dein Editfelname}.text) <= 4 then begin // ist die Länge unter 4?
// Wenn ja, dann mache weiter
if Sender is TButton then // Ist der Sender überhaupt ein Button?
{Editfeld} := {Editfeld} + (Sender as TButton).Caption // Wenn ja, dann füge das hinzu
else
Showmessage('Der Auslöser war kein TButton!'); // Wenn nicht, dann melde es
end else
Showmessage('Das Passwort überschreitet die maximallänge von 4 Zeichen!'); // Wenn nicht, dann melde es
So ungefähr!